通过frp访问内网vnc服务

背景

需要远程访问内网linux桌面,而且anydesk等不好用,所以想到通用的vnc方案。但是设置端口映射后,发现依然端口无法访问,怀疑是被协议级检测了,所以想到frp穿透下。

方案

file

步骤

  1. 配置要ddns域名和端口映射,否则无法访问到内网主机
  2. 安装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

frq实现私密访问

目标:通过密码从国内代理流量到国外(ssh)

frp server

略,通用配置

目标服务器(海外)sshd server

frpc.ini

[common]
server_addr = x.x.x.x
server_port = 7000

[secret_ssh]
type = stcp
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22

国内服务器

frpc.ini

[common]
server_addr = x.x.x.x
server_port = 7000

[secret_ssh_visitor]
type = stcp
role = visitor
server_name = secret_ssh
sk = abcdefg
bind_addr = 127.0.0.1
bind_port = 6000

server_name sk 可以简单理解成frpc远端的账号密码。

从国内访问海外ssh

ssh -oPort=6000 x.x.x.x(国内的ip)