目的
配置内网穿透
软件安装
frp分为 frps(服务器端,即外网机器) 和 frpc(客户端,即内网机器)
服务器端的配置 frps
1.1、下载地址,根据自己的机器选择想对应的版本
https://github.com/fatedier/frp/releases
wget -c https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_arm64.tar.gz
1.2、修改frps.ini
# 删除所有的 frpc的内容
rm frpc*
vim frps.ini
frps.ini 文件的内容
[common]
bind_port = 7000 #connect port between server and client
token = XXX # token for safe
vhost_http_port = 8080
subdomain_host = frps.com
#set dashboard: test the open of port in server
dashboard_port = 7500
dashboard_user = test
dashboard_pwd = test
1.3、开放7000和7500端口(防火墙设置可以查看 防火墙设置 )
#list open port
firewall-cmd --list-all
firewall-cmd --permanent --zone=public --add-port=7000/tcp
firewall-cmd --permanent --zone=public --add-port=7500/tcp
systemctl reload firewalld
1.4、阿里云或者百度云需要添加防火墙规则,开放相关端口
阿里云设置的位置在 云服务器/安全组 中手动添加
1.5、部署frps
./frps -c frps.ini
1.6、浏览器dashboard查看部署情况
http://{user IP}:7500
如果不能打开网站,说明服务器端没有部署成功,查看端口是否打开,以及云服务器是否开放端口
1.7、设置开机自启动
cd /etc/systemd/system/
touch frps.service
frps.service中的内容,注意修改ExecStart中的路径,注意设置User=root否则会报错
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=root # user must be root
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /root/frp/frp_0.48.0_linux_amd64/frps.ini
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
启动frps的服务
systemctl start frps
systemctl status frps
客户端的配置 frpc
2.1、参照步骤1.1和1.2将对应的githup源码压缩包放在客户端上,解压。
2.2、修改 frpc.ini
[common]
tls_enable = true
server_addr = XXXX #server IP, 外网服务器IP
server_port = 7000 #same with bind_port in server
token = XXX #same with token in frps.ini
log_file = XX # path of log file
log_level = info
log_max_days = 3
[ssh_wang1]
type = tcp
local_ip = 10.0.XX.XX #local IP or set 127.0.0.1
local_port = 22
remote_port = 8081
[rstudio_wang1]
type = tcp
local_port = 8787
use_encryption = true
use_gzip = false
pool_count = 10
remote_port = 6001
注意:
tls_enable = true,这个必须加上,否则会报错 login to server failed: i/o deadline reached
外界通过 公网IP(即外网服务器IP)+ remote_port 去访问 local_ip + local_port。比如访问1.2.3.4:8081 实质访问 127.0.0.1:22
因此:服务器的ssh的服务的默认端口是22,所以设置local_port 为22,而rstudio的默认端口是8787,所以设置local_port 为8787
2.3、客户端部署frpc
./frpc -c frpc.ini
访问设置
3.1、浏览器dashboard查看部署情况
可以看到部署的端口情况,参考1.6
3.2、服务器端设置
由于访问是通过 公网IP+ remote_port完成的,所以必须去服务器端开放相应的端口,如果按照上面的设置,需要开放8081和6001的端口,过程参考1.3 开放7000和7500端口 这一段
3.3、连接相关的服务
连接ssh服务
ssh -oPort=8081 {user Name}@{server IP}
连接rstudio server
在浏览器中输入
{server IP}:{6001}
参考网站:
1、阿里云服务器frp内网穿透教程
2、frp内网穿透教程
3、i/o deadline reached
4、linux查看防火墙状态和对外开放的端口状态
5、[端口情况查看] https://blog.csdn.net/qq_45772881/article/details/130580020