前言
我们有时候需要从外网远程家里的,或者公司的电脑处理一些事情。虽然现在有向日葵,ToDesk 等远程软件,但是免费版本有时候用起来还是存在卡顿等问题,查阅了一下资料,可以采用FRP配合公网服务器进行内网穿透操作,我正好有一个独立的博客站点,拥有公网ip,可以尝试操作一波
服务端配置
首先我们在公网服务器上下载 frp 软件包,并解压命名为 frp
wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
tar -zxvf frp_0.37.0_linux_amd64.tar.gz && mv frp_0.37.0_linux_amd64 frp
然后我们进入到 frp 文件夹,并编辑 frps.ini 文件 (frpc.ini 是供客户端使用的,不管)
[common]
bind_port = 7000
auto_token = 123456
这里加了一个 auto_token,是为了和客户端匹配认证,起到安全的作用
接着我们需要开放 7000 端口,由于我是 CentOS 服务器,所以这里输入如下指令:
sudo firewall-cmd --add-port=7000/tcp --permanent
sudo firewall-cmd --add-port=7001/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --query-port=7000/tcp #如果已经打开,会返回 yes
这里我们添加了一个 7001,这是后面被远控的windows机器需要使用的远控端口
最后我们运行如下的指令即可
./frps -c frps.ini
客户端配置
客户端我们同样先下载对应版本的 frp 程序,并解压。然后修改 frpc.ini 文件如下:
[common]
server_addr = 127.0.0.1 #服务器公网ip,也是我们后面远程用到的ip
server_port = 7000
auto_token = 123456
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001 #这个是服务器为RDP开放的链接端口,后面我们需要用这个端口来远程
然后我们运行如下指令
./frpc -c frpc.ini
这个指令会连接服务端的 frps 服务进行通讯,然后服务端会监控 7001 端口
外网机器
我们直接打开远程桌面,输入 服务器IP:7001 远程连接即可
逻辑流程
【外网机器】远程连接 【服务器IP:7001】,然后服务器的 frps 服务程序将该端口转发到 【被远控的客户端】,然后【客户端】通过配置的 ssh,将 7001 端口重定向为 3389,然后就联通了
更多的使用方式请参考:https://gofrp.org/
小贴士
下面是一个开源的GUI版本飞frp管理器:
https://github.com/koho/frpmgr