背景
需要远程访问内网linux桌面,而且anydesk等不好用,所以想到通用的vnc方案。但是设置端口映射后,发现依然端口无法访问,怀疑是被协议级检测了,所以想到frp穿透下。
方案
步骤
- 配置要ddns域名和端口映射,否则无法访问到内网主机
- 安装frps 和frpc,根据具体需要,可以是一台物理机,也可以是分开的主机。
配置
frps.ini
[common]
bind_port = 7000
frpc.ini
[common]
server_addr = 127.0.0.1
server_port = 7000
[ssh]
type = tcp
remote_port = 6000
local_port = 5900
local_ip = 127.0.0.1
注意:此配置表示frpc和vnc server在一个机器,如果不在一个机器,要实际修改local_ip
frp 开机启动
frpc
vim /lib/systemd/system/frpc.service
[Unit]
#服务描述
Description=frp service
After=network.target syslog.target
Wants=network.target
Requires=frps.service
After=frps.service
[Service]
Type=simple
TimeoutStartSec=infinity
ExecStartPre=/bin/sleep 30
#执行命令
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
#启动
sudo systemctl start frpc
#关闭
sudo systemctl stop frpc
#重启
sudo systemctl restart frpc
#查看状态
sudo systemctl status frpc
frps
与frpc类似
[Unit]
#服务描述
Description=frp service
After=network.target syslog.target
Wants=network.target
Before=frpc.service
[Service]
Type=simple
#执行命令
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
[Install]
WantedBy=multi-user.target