frp xtcp/stcp实现内网穿透远程电脑
frp xtcp/stcp实现内网穿透远程电脑
frp
服务器 frps
我个人使用的阿里云服务器,学生认证300券白嫖的一个服务器,安装的ubuntu22.04lts
在服务器上安装frp
1 2 3 4 5
| wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz tar xf frp_0.61.0_linux_amd64.tar.gz mv frp_0.61.0_linux_amd64 frp cd frp nano frps.toml
|
修改frps.toml内容,注意记得在服务器开启对应端口
1 2 3 4 5 6 7 8
| bindPort = 7000 auth.token = "token" # 默认为 127.0.0.1,如果需要公网访问,需要修改为 0.0.0.0。 webServer.addr = "0.0.0.0" webServer.port = 7500 # dashboard 用户名密码,可选,默认为空 webServer.user = "user" webServer.password = "pwd"
|
设置systemd自启动服务
1
| sudo nano /etc/systemd/system/frps.service
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [Unit] Description = frps client After = network.target syslog.target Wants = network.target
[Service] Type = simple # 启动frps的命令,需修改为您的frps的安装路径 ExecStart = /path/frps -c /path/frps.toml Restart=on-failure RestartSec=5s
[Install] WantedBy = multi-user.target
|
1 2
| sudo systemctl enable frps sudo systemctl start frps
|
查看服务状态
1
| sudo systemctl status frps
|
下面这样就是运行起来了
1 2 3
| ● frps.service - frps client Loaded: loaded (/etc/systemd/system/frps.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2024-12-20 14:57:52 CST; 32s ago
|
frpc
个人工作电脑都是windows,在github下载对应Releases · fatedier/frp
这里是参考frp之XTCP实现内网穿透家用电脑远程桌面公司电脑-CSDN博客实现
远程电脑设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| serverAddr = "xxx.xxx.xxx.xxx" serverPort = 7000 webServer.port = 7500 auth.token = "token"
loginFailExit = false
# 这里表示如果 xtcp 打洞失败时,使用 stcp 远程链接电脑 [[proxies]] # stcp的服务名称要和家用电脑配置的serverName一致 name = "xxx" type = "stcp" # 这个secretKey要和家用电脑一致 secretKey = "key" localIP = "127.0.0.1" # 电脑远程桌面端口(一般情况下会改成其它端口) localPort = 3389 # 压缩传输内容 transport.useCompression = true
[[proxies]] # xtcp的服务名称要和家用电脑配置的serverName一致 name = "***" type = "xtcp" secretKey = "key" localIP = "127.0.0.1" # 电脑远程桌面端口(一般情况下会改成其它端口) localPort = 3389 # 压缩传输内容 transport.useCompression = true
|
访问远程电脑设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| serverAddr = "xxx.xxx.xxx.xxx" serverPort = 7000 webServer.port = 7500 auth.token = "token"
loginFailExit = false
[[visitors]] # 访问远程电脑电脑 stcp visitors 名称(随意) name = "stcpname" type = "stcp" # 远程电脑 stcp name serverName = "xxx" secretKey = "key" # stcp-visitor 的 bindPort 设置为 -1 表示不需要监听物理端口,只接受 fallback 的连接即可。 bindPort = -1 # 压缩传输内容 transport.useCompression = true
[[visitors]] # 家用电脑 xtcp visitors 名称(随意) name = "xtcpname" type = "xtcp" # 公司电脑 xtcp name serverName = "***" secretKey = "key" bindAddr = "127.0.0.1" # 使用家用电脑的23389端口远程桌面链接到公司电脑3389端口电脑(注意:Windows必须是专业版的,并且要启用远程桌面和设置密码) bindPort = 23389 # 压缩传输内容 transport.useCompression = true # 配置了 keepTunnelOpen = true 时,frpc 会定期检测隧道是否打开,如果没有,则会尝试打洞建立隧道,这样可以始终保持隧道打开,在需要连接对端服务时,可以避免延迟。 keepTunnelOpen = true # 如果 xtcp 打洞失败,则使用 stcp 进行链接,fallbackTo = 上面的 stcp name fallbackTo = "stcpname" # 当连接 127.0.0.1:23389 超过 2000ms p2p 打洞还未成功的话,会回退到使用 stcpname 建立连接。 fallbackTimeoutMs = 2000
|
远程
这时开启两个电脑的frpc,即可远程电脑
使用cmd进入frp安装目录,执行下列指令
再使用远程桌面连接127.0.0.1:23389

输入账号密码,远程成功!
很可惜,由于校园网太复杂,xtcp打洞失败,只能stcp了