网络知识

frp穿透内网 使用xtcp&stcp进行P2P穿透远程桌面

官方:https://github.com/fatedier/frp
官方:概览 | frp (gofrp.org)
老版本的中文版手册
1、待其他设备访问的客户端配置


serverAddr = "x.x.x.x" #服务器IP
serverPort = 7000 #服务端监听端口
auth.method = "token" #服务端连接身份认证,默认token
auth.token = "token" #服务端token密码
log.to    = "./log/frpc.log"
#log.level =    "trace"
log.maxDays    = 30
#stcp配置信息
[[proxies]]
name = "stcp_rdp"
type = "stcp"
# 只有与此处设置的 secretKey 一致的用户才能访问此服务
secretKey = "linux"
localIP = "127.0.0.1"
localPort = 3390
#xtcp配置信息
[[proxies]]
name = "p2p_rdp"
type = "xtcp"
# 只有与此处设置的 secretKey 一致的用户才能访问此服务
secretKey = "linux"
localIP = "127.0.0.1"
localPort = 3390

2、访问其它设备的客户端配置


serverAddr = "x.x.x.x"
serverPort = 7000
auth.method = "token" #服务端连接身份认证,默认token
auth.token = "token" #服务端token密码
[[visitors]]
name = "stcp-visitor"
type = "stcp"
serverName = "stcp_rdp"
secretKey = "linux"
bindPort = -1
[[visitors]]
name = "p2p_rdp_visitor"
type = "xtcp"
# 要访问的 P2P 代理的名称
serverName = "p2p_rdp"
secretKey = "linux"
# 绑定本地端口以访问 SSH 服务
bindAddr = "127.0.0.1"
bindPort = 8336
# 如果需要自动保持隧道打开,将其设置为 true/false
keepTunnelOpen = true
minRetryInterval = 360
fallbackTo = "stcp-visitor"
fallbackTimeoutMs = 120

3、服务器(vps)配置


bindPort = 7000 #服务端监听端口
auth.method = "token" #服务端连接身份认证,默认token
auth.token = "toke" #服务端token密码
log.to    = "/root/frp/log/frps.log"
#log.level =    "trace"
log.maxDays = 30
webServer.addr = "0.0.0.0" #服务端IP
webServer.port = 7500 #服务端仪表板端口
webServer.user = "admin" #访问web时的账号
webServer.password = "123456" #访问web时的密码

4、运行frp的服务端 :


./frps -c frps.toml
# 一般会使用 nohup命令,后台运行:
nohup ./frps -c frps.toml &

5、systemd 管理 frp 实践


vi /etc/systemd/system/frps.service

写入内容:

#服务描述
Description=frps service 
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#执行命令 
ExecStart=/root/frp/frps -c /root/frp/frps.toml
[Install]
WantedBy=multi-user.target

使用 systemd 命令,管理 frps。

    # 启动frp
    systemctl start frps
    # 停止frp
    systemctl stop frps
    # 重启frp
    systemctl restart frps
    # 查看frp状态
    systemctl status frps
    # 配置 frps 开机自启
    systemctl enable frps
    # 禁止开机启动
    systemctl disable frps

在两台win10电脑上测试了,连接成功,win10访问端只要打开windows附件里远程桌面填写地址127.0.0.1:8336即可,这个端口自己指定。