frp实现内网穿透(内网服务器到公网访问的方案
什么是frp呢?
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
我们就将轻量服务器作为中转站,建立两者之前的桥梁。
操作步骤
frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。
但是frpc和frps的端口号都要在具有公网IP的机器上开通。
以腾讯云轻量服务器为例:
来到防火墙建立两个TCP端口
目前可以在 Github 的 Release 页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中。
一般我们的机器都是AMD64
下载的文件包含很多文件,建议分成2份
服务端:frps.ini frps frps_full.ini
客户端:frpc.ini frpc frpc_full.ini
在两个端都使用sudo chmod 777 frpc或者sudo chmod 777 frps更新权限,以防找不到命令
在服务端,即轻量服务器,具有公网ip中,编辑frps.ini文件:
可以使用./frps -c frps.ini看看是不是端口呀,能不能启动
[common]
bind_port = 9960
在客户端端,编辑frpc.ini文件:
可以使用./frpc -c frpc.ini看看两边能不能连接
[common]
server_addr = x.x.x.x#公网ip地址
server_port = 9960
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2022
如果有两台要连接frps的端口,此时可以在新的一台重复上述安装流程,建立frpc.ini
[common]
server_addr = x.x.x.x#公网ip地址
server_port = 9960
[ssh1] # 若有多个客户端,名称不要重复。
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6001 # 远程连接端口不要重复
如果遇到类似这种问题:
还有其它问题都看看下面的解放方式
就是两边的端口号写错了,跟你开启的防火墙不一样,不要相信网上增加什么配置,安装golang
如果还使用宝塔了,宝塔的安全也增加对应的端口
如果出现error: dial tcp 127.0.0.1:22: connect: connection refused
请先安装ssh
sudo apt update
sudo apt install openssh-server -y
# 如果你的防火墙开启了,使用下面语句
sudo ufw allow ssh
因为两边都是开terminal的方式,不太好,而且得一直开着,这里推荐使用 systemd 控制 frps 及配置开机自启
使用文本编辑器,如 vim 创建并编辑 frps.service 文件。
vim /etc/systemd/system/frps.service
写入内容
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.ini
[Install]
WantedBy = multi-user.target
怎么更好看安装路径呢?在你的解压目录,使用pwd,直接将输出的结果cv一下即可。
使用 systemd 命令,管理 frps。
# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
配置 frps 开机自启。
systemctl enable frps
frpc类同!省略
这样服务端和客户端都配置好,就能开始偷偷的卷了
————————————————
版权声明:本文为CSDN博主「染念」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_28356373/article/details/127941404