通过 FRP 内网穿透并实现 VNC 远程访问 Mac 桌面
fenbox 2020-02-11 16:00:54 阅读数:369 评论数:0 点赞数:0 收藏数:0
标签:frpVNC内网穿透实现
受疫情影响,很多人都开始了远程办公。部分公司平时没有做好准备,导致一时半会儿链接不上公司内网的服务器,更别说部署虚拟专用网络了。这篇文章主要介绍 FRP 的使用方法,虽然没法解决当前连不上内网的问题,但可作为今后的预防措施,在关键时刻助你一臂之力。
需要准备的东西有:
- 一台链接到公网的服务器,本篇以 阿里云 为例,系统为 Debian 64 位
- 一台处于内网的 Mac,可以访问互联网
1. 公网服务器部署 FRP 服务端 frps
下载 FRP 程序 ,确保和服务器匹配:
1 2 3 4 5 6
| # 下载程序 wget https://github.com/fatedier/frp/releases/download/v0.31.2/frp_0.31.2_linux_amd64.tar.gz # 解压缩 tar -zxvf frp_0.31.2_linux_amd64.tar.gz # 进入目录 cd frp_0.31.2_linux_amd64
|
解压后可以看到有 8 个文件
1 2 3 4 5 6 7 8
| frpc # 客户端程序 frpc_full.ini # 完整的客户端配置文件 frpc.ini # 客户端配置文件 frps # 服务端程序 frps_full.ini # 完整的服务端配置文件 frps.ini # 服务端配置文件 LICENSE # 服务端配置文件 systemd # 开机启动服务文件
|
编辑 frps.ini
,如下:
1 2 3 4
| [common] bind_port = 7000 # 用于和 FRP 客户端通信 kcp_bind_port = 7000 # 加速 TCP 访问,与 bind_port 值一致 token = 12345678 # 核实身份用,加了更安全
|
运行 ./frps -c ./frps.ini
看看结果,正常启动如下图。
2. 内网设备部署 FRP 客户端 frpc
下载 FRP 程序 ,Mac 版的名字是这样的 frp_x.x.x_darwin_amd64.tar.gz
,并解压。
编辑解压后的 frpc.ini
文件,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| [common] server_addr = x.x.x.x # 公网服务器 IP 地址 server_port = 7000 # 绑定端口,和服务端一致 protocol = kcp # 开启加速 token = 12345678 # 与服务端一致 ; login_fail_exit = false # 无网络时一直等待不退出 [vnc] type = tcp local_ip = 127.0.0.1 local_port = 5900 remote_port = 5900 use_encryption = true use_compression = true [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 use_encryption = true use_compression = true
|
执行 ./frpc -c ./frpc.ini
启动连接,正常启动如下图。
注意:建立链接时如果出现报错,请检查公网服务器端口是否被限制,阿里云等云服务需要在控制台配置安全组规则,如下图:
启用 KCP 时,一定要开启对应端口的 UDP 协议。
3. 开启远程桌面或 SSH 登录
以上服务都启动后,我们需要进入 Mac 的【系统偏好设置】->【共享】,勾选“屏幕共享”和“远程登录”,用户为“所有用户”。
3.1 VNC 登录 Mac
打开“访达(Finder)”,选择菜单【前往】->【链接服务器】,输入
vnc://x.x.x.x:5900
(将 x.x.x.x
替换成公网服务器 IP 地址)
如果连接成功,就会出现下面的界面,只要输入 Mac 的用户名和密码就行了
3.2 SSH 登录 Mac
在终端里执行 ssh Mac用户名@x.x.x.x -p 6000
(将 x.x.x.x
替换成公网服务器 IP 地址),输入密码后即可登录成功。
4. 添加自动启动
4.1 将 frps 加入自动启动
进入公网服务器,执行下列命令:
1 2 3 4 5 6 7 8
| sudo cp /xxx/frps /usr/bin/ # 将执行文件移入系统目录 sudo cp /xxx/frps.ini /etc/frp/ # 将配置文件移入系统配置目录 # 添加自启动配置 sudo cp /xxx/systemd/frps.service /lib/systemd/system/ sudo systemctl daemon-reload # 重新加载配置 sudo systemctl enable frps.service # 启用 frps 开机启动 sudo systemctl start frps.service # 启动 frps 服务 systemctl status frps.service # 查看 frps 服务状态
|
4.2 将 frpc 加入自动启动
1 2 3
| # 编辑自启动文件 touch ~/Library/LaunchAgents/frpc.plist vim ~/Library/LaunchAgents/frpc.plist
|
frpc.plist
文件内容如下,注意文件中的 frpc
和 frpc.ini
路径,可以将这两个文件移到下方配置文件的路径下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd > <plist version="1.0"> <dict> <key>Label</key> <string>frpc</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/frpc/frpc</string> <string>-c</string> <string>/usr/local/bin/frpc/frpc.ini</string> </array> <key>KeepAlive</key> <true/> <key>RunAtLoad</key> <true/> </dict> </plist>
|
加载并生效:
1 2
| sudo chown root ~/Library/LaunchAgents/frpc.plist sudo launchctl load -w ~/Library/LaunchAgents/frpc.plist
|
别忘了还需要保证 Mac 处于开机运行状态。至此,所有的配置都完成了。