准备
公网服务器一台(腾讯云,阿里云,华为云等服务器均可)
内网穿透工具 frp (免费开源)
远程控制软件 RealVNC
服务器上部署(服务端)
首先了解一下 frp 是什么?
frp 是一个可用于内部网穿透的高级反向代理应用程序,支持 tcp,udp 协议,为 http 和 https 应用协议提供了额外的能力,并且尝试性支持了点对点穿透。
第一步:下载 frp 到公网服务器
登录公网服务器下载 frp,frp 下载地址:https://github.com/fatedier/frp/releases
找到对应版本下载
(注:可以输入 arch,查看 cpu 架构,云服务和 Ubuntu16.0.4 都是 x86_64 处理器架构,所以下载 amd64 的包)
这里下载的是当前更新的最新版 frp_0.34.1_linux_amd64.tar.gz
wget https://github.com/fatedier/frp/releases/download/v0.34.1/frp_0.34.1_linux_amd64.tar.gz
由于 github 使用的 亚马逊的服务器,国内访问特别慢,这里可以使用 IDM 等下载工具多段同时下载,效果非常明显
下载完之后再使用 远程工具 上传到服务器
第二步:配置 frp
下载完成后解压
tar -xzvf frp_0.34.1_linux_amd64.tar.gz
解压之后,找到 frps.ini 这个文件,并打开:
cd frp_0.34.1_linux_amd64
sudo nano frps.ini
参考 frps_full.ini,添加一下内容:
[common]
bind_port = 7000
token = 12345678
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
max_pool_count = 5
log_file = ./frps.log
log_level = info
log_max_days = 3
保存,退出。
在当前目录下运行 frps
nohup ./frps -c ./frps.ini &
查看 7600 端口是否在监听
netstat -ap | grep 7600
注意要把云服务器的 7000,7500 等相应的端口放行。
测试后台是否能打开
#云服务器公网ip + 7600
http://x.x.x.x:7600
记得 x.x.x.x 替换为自己公网 ip 地址,提示输入账户密码,默认 admin
界面是这样的:
至此,服务端 frp 部署成功了
第三步:设置开机启动
设置服务
添加 systemd 配置文件:
vim /usr/lib/systemd/system/frp.service
添加以下内容
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
ExecStart 的内容请根据自己 frp 安装目录修改。
设置开机启动
systemctl daemon-reload
systemctl enable frp
同时也可以服务形式启动 frp
systemctl start frp
查看 frp 是否启动
ps aux | grep frp
看到这里就说明启动成功了。
树莓派上部署(客户端)
这里用的是树莓派 4b+
下载的是 arm 文件:
打开 下载后解压,打开 frpc.ini 文件:
sudo nano frpc.ini
和上面一样配置自启动。
远程连接
vnc 连接:
到官网下载 vnc:https://www.realvnc.com/en/connect/download/viewer/ 相对应版本的 vnc viewer
或者使用 SSH 都可以远程连接啦。
连接使用 公网ip+公网映射端口