受疫情影响,很多人都开始了远程办公。部分公司平时没有做好准备,导致一时半会儿链接不上公司内网的服务器,更别说部署虚拟专用网络了。这篇文章主要介绍 FRP 的使用方法,虽然没法解决当前连不上内网的问题,但可作为今后的预防措施,在关键时刻助你一臂之力。 需要准备的东西有: 一台链接到公网的服务器,本篇以 阿里云 为例,系统为 Debian 64 位 一台处于内网的 Mac,可以访问互联网
1. 公网服务器部署 FRP 服务端 frps# 下载程序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 个文件 frpc # 客户端程序frpc_full.ini # 完整的客户端配置文件frpc.ini # 客户端配置文件frps # 服务端程序frps_full.ini # 完整的服务端配置文件frps.ini # 服务端配置文件LICENSE # 服务端配置文件systemd # 开机启动服务文件编辑 frps.ini,如下: [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 文件,如下: [common]server_addr = x.x.x.x # 公网服务器 IP 地址server_port = 7000 # 绑定端口,和服务端一致protocol = kcp # 开启加速token = 12345678 # 与服务端一致; login_fail_exit = false # 无网络时一直等待不退出[vnc]type = tcplocal_ip = 127.0.0.1local_port = 5900remote_port = 5900use_encryption = trueuse_compression = true[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000use_encryption = trueuse_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 加入自动启动进入公网服务器,执行下列命令: 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 加入自动启动进入内网 Mac 系统,执行下列操作: # 编辑自启动文件touch ~/Library/LaunchAgents/frpc.plistvim ~/Library/LaunchAgents/frpc.plistfrpc.plist 文件内容如下,注意文件中的 frpc 和 frpc.ini 路径,可以将这两个文件移到下方配置文件的路径下: <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//ENhttp://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>加载并生效: sudo chown root ~/Library/LaunchAgents/frpc.plistsudo launchctl load -w ~/Library/LaunchAgents/frpc.plist别忘了还需要保证 Mac 处于开机运行状态。至此,所有的配置都完成了。 |