目前网上的教程都不太完善,在经过一下午的折腾才搞定(主要是没想到校园网竟然搞了端口封锁)白折腾了不少时间。
一、部署带公网ip的云服务器
二、下载frp
下载链接:Releases · fatedier/frp (github.com)
首先看自己服务器是哪种架构,选择对应的版本
比如我的是x86就应该选择386
在最新版选择服务端和客户端进行下载。
因为frp下载比较慢,我是自行下载再上传到服务器的,使用Xshell.
使用方法:(2条消息) 通过阿里云ECS服务器部署FRP实现Windows自带远程桌面_阿里云服务器frp远程桌面_baotangyin的博客-CSDN博客
创建一个会话
创建完成后进入会话列表,选中后点击连接
出现以下提示即表示连接成功
在命令行界面空白处右键鼠标,选择传输模式,我选的是ZMODEM,三个模式看哪个速度快选哪个
弹出文件选择框后选择文件,打开即可上传
三、服务端配置
上传后解压安装包
tar -zxvf frp_0.51.0_linux_386.tar.gz
进入解压好的文件,配置frps.ini(服务器端)
vi frps.ini
[common]
# bind_port 是frp内网穿透服务器端监听的端口,默认是7000
bind_port = xxxx
# 开启token验证
authentication_method = token
# 设置token验证,相当于密码
token = xxxx
(可选)
# 这个是frp内网穿透服务器的web界面的端口,可以通过http://你的ip:XXXX查看frp内网穿透服务器端的连接情况,和各个frp内网穿透客户端的连接情况。
dashboard_port = xxxx
dashboard_user = xxxx(用户名)
dashboard_pwd = xxxx(密码)
# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
因为我用的是轻量应用服务器,所以在防火墙开启对应端口后最好在内部进行确认
比如这样就开启9000端口
配置完后可以去检查一下
(1)先看看服务器是否开启了任务监听对应端口,我这里端口是3389
sudo netstat -tunlp | grep 3389
(2)如果任务已开始监听,然后看看防火墙是否开放了这个端口,很重要
sudo iptables -L -n --line-numbers | grep 3389
(3)如果防火墙没有开启这个端口,需要自己添加规则开启
我的服务器使用了防火墙工具firewalld。
举例在使用firewalld的情况下,按如下步骤开放7000端口:
打开终端或SSH连接到你的CentOS服务器。
使用超级用户或具有管理员权限的账户登录。
检查防火墙状态,确认是否使用firewalld:
sudo firewall-cmd --state
如果返回结果是 running
,说明你使用的是firewalld。
开放7000端口并使其持久生效:
sudo firewall-cmd --zone=public --add-port=7000/tcp --permanent
重新加载防火墙规则以应用更改:
sudo firewall-cmd --reload
6.使用以下命令来检查7000端口是否已经开放:
sudo firewall-cmd --zone=public --query-port=7000/tcp
前台运行frp
./frps -c ./frps.ini
跟网上不一样的是输入该代码后不会出现任何提示信息,但是通过web界面可以发现确实成功启动
vim /lib/systemd/system/frps.service
[Unit]
Description=frps service After=network.target syslog.target Wants=network.target
[Service]
Type=simple #启动服务的命令
ExecStart=此处写你的frps的实际安装目录/frps -c 此处写你的frps的实际安装目录/frps.ini
[Install]
WantedBy=multi-user.target
systemctl start frps
systemctl enable frps
systemctl disable frps
systemctl restart frps
systemctl stop frps
systemctl status frps
四、客户端配置
编辑该文件
[common]
server_addr = 服务器公网ip
server_port = blnd_prot
token = 和服务端一样
[ssh]
type = tcp
local_ip = xxxxxxxx(本机ip或者127.0.0.1)
local_port = xxxx
remote_port = xxxx
记住这里设置的remote_port也要在服务器防火墙开放端口
同时用户端添加端口出站规则:将端口3389添加到出站规则中
在Dos中启动服务:win+R 输入cmd
需要先进入frp目录后执行如下操作:
frpc -c frpc.ini
5.设置客户端frpc随系统启动
因为是远程控制桌面,那我们电脑就会有重启情况,所以我们把它打包成服务设置成开机自启
下载winsw最新版,为了方便将其重命名为winsw.exe, 将该文件和frpc.exe放在一起,然后新建winsw.xml
写入以下内容:
保存后进入powershell,CD到frp所在目录,然后使用
winsw install
和
frpc start
命令即可将frpc安装为系统服务。
win+r后通过
services.msc
进入到服务列表页面找到frp服务。
为了确保frpc在连接失败后自动尝试重新连接,在恢复tap页进行如下设置:
完成后下次启动系统,服务就会自动启动运行。
至此frp内网穿透就完成了。
这样就链接成功 ,效果如下:
,