Windows跨局域网远程链接¶
借助 frp
实现点对点内网穿透链接,实现两台电脑通过远程链接相互访问。
1 服务端部署¶
需要一个具有公网IP的服务器,并将域名解析到服务器IP上(没有域名可以用IP来代替)。
服务端借助宝塔面板来部署,可以便捷地绑定域名和添加守护进程。准备几个端口提前放行,用来部署服务。下文选用的端口包括:
- 88 网站端口
- 7000 frp 服务端口
- 7009 frp 面板端口
- 7001~7008 TCP代理端口
- 7010 HTTP服务端口
1.1 部署网站¶
创建一个PHP静态网站,并启用反向代理(端口 7009)。
1.2 安装frp¶
下载 frp/releases
cd /www/wwwroot/frp-beyondxin-top # 直接选宝塔创建站点的目录即可
wget https://github.com/fatedier/frp/releases/download/v0.57.0/frp_0.57.0_linux_amd64.tar.gz
tar -zxvf frp_0.57.0_linux_amd64.tar.gz
rm frp_0.57.0_linux_amd64.tar.gz
mv frp_0.57.0_linux_amd64/ frp
cd frp
vim frps.ini
frps.ini 根据实际情况填写
[common]
bind_port = 7000 # 接受客户端数据端口
vhost_http_port = 7010 # http访问端口
token = 123abc # 链接密钥
subdomain_host = frp.beyondxin.top # 域名
dashboard_addr = 0.0.0.0 # 面板ip
dashboard_port = 7009 # 面板端口
dashboard_user = admin # 面板账号
dashboard_pwd = 123456 # 面板密码
1.3 启动服务¶
宝塔安装插件【进程守护管理器】,添加进程。启动命令根据实际路径填写:
启动成功后,可以通过域名(创建网站时记得加代理)成功访问面板。
2 客户端部署¶
链接类型比较
类型 | 暴露端口 | 流量经过服务器 |
---|---|---|
tcp | 需要 | 经过 |
stcp | 不需要 | 经过 |
xtcp | 不需要 | 不经过 |
下文配置使用 XTCP,速度最快。两个客户端需要支持双向远程桌面链接,操作方式一致。XTCP打洞不能适用所有NAT环境,失败的话改用STCP。
2.1 安装frp¶
下载 frp/releases
根据实际情况修改配置文件 frpc.toml
。3389 是Windows自带远程链接使用的端口。两个客户端name记得对调。
serverAddr = "frp.beyondxin.top" # 服务网址
serverPort = 7000 # 服务端口
auth.token = "123abc" # 服务密钥
[[proxies]]
name = "xtcp-home" # 第二台 xtcp-work
type = "xtcp"
secretKey = "123456"
localIp = "127.0.0.1"
localPort = 3389
[[visitors]]
name = "xtcp-home-visitors" # 第二台 xtcp-work-visitors
type = "xtcp"
serverName = "xtcp-work" # 第二台 xtcp-home
secretKey = "123456"
bindAddr = "127.0.0.1"
bindPort = 6000
keepTunnelOpen = true
2.2 启动frp¶
Windows如果需要守护进程需要将 frpc
封装成服务,可以用 nssm。
3 远程访问¶
使用 XTCP 点对点链接,当两个客户端均启动服务后,对方都被映射到本地的 127.0.0.1:6000。直接远程链接即可。因为是本地链接,默认凭证的用户也是本地的,记得切换用户。如果客户端在域内,用户名需要加域。
将硬件图形适配器应用于所有远程桌面服务会话。