frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
一、服务端配置
1、安装及配置
这里以群晖 NAS 为例:
- 在 Docker 注册表里搜索 frps,安装 latest 版本(也可以安装指定版本);
- 在映像里创建容器,并进入高级设置;
- 在高级设置里启用自动重新启动;
- 在存储空间添加文件,装载路径为
/etc/frp/frps.ini
; - 网络里勾选使用与 Docker Host 相同的网络;
- 启动容器。
2、frps.ini 配置文件
[common]
bind_port = 7000
token = your_token
dashboard_port = 7500
dashboard_user = your_dashboard_user
dashboard_pwd = your_dashboard_pwd
vhost_http_port = 8000
vhost_https_port = 8001
二、客户端配置
1、安装及配置
同样以群晖 NAS 为例,安装及配置基本跟服务端相同,配置文件改为 frpc.ini 即可。
2、frpc.ini 配置文件
[common]
server_addr = your_server_addr
server_port = 7000
tls_enable = true
token = your_token
[ssh]
type = tcp
local_ip = 192.168.100.2
local_port = 22
remote_port = 8022
use_compression = true
use_encryption = true
[chevereto]
type = tcp
local_ip = 192.168.100.2
local_port = 8090
remote_port = 8090
use_compression = true
use_encryption = true
[WebDAV_https]
type = tcp
local_ip = 192.168.100.2
local_port = 5007
remote_port = 8007
use_compression = true
use_encryption = true
[WebDAV_http]
type = tcp
local_ip = 192.168.100.2
local_port = 5005
remote_port = 8005
use_compression = true
use_encryption = true
[dsm_http]
type = tcp
local_ip = 192.168.100.2
local_port = 5000
remote_port = 8000
use_compression = true
use_encryption = true
[http]
type = http
custom_domains = your_custom_domains
local_port = 5000
use_compression = true
use_encryption = true
[https2http]
type = https
custom_domains = your_custom_domains
local_port = 5000
plugin = https2http
plugin_local_addr = 127.0.0.1:5000
plugin_crt_path = /etc/frp/cert/your_custom_domains.pem
plugin_key_path = /etc/frp/cert/your_custom_domains.key
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp
三、Mac 远程访问
公司因安全原因,内网屏蔽了 TeamViewer、花生壳等远程桌面工具,而我时常需要在家里访问公司的 Mac 电脑。
一种方法是连接 VPN,然后通过 公司的 Mac IP 地址这种场景使用 frp 工具就非常好解决了。
1、Mac 屏幕共享设置
在 System Preferences -> Sharing -> 勾选 Screen Sharing
2、Mac 安装 frpc
可以在 frp GitHub 下载 darwin 二进制包,使用 ./frpc -c frpc.ini
命令即可启动客户端,但是如果想要自启动,还得配置 launchctl。
我们可以直接使用 Homebrew 进行安装会更加方便,Homebrew 内置了 brew services 服务(Manage background services with macOS’ launchctl(1) daemon manager.),我们就不用单独配置 launchctl。
// 安装
brew install frpc
// 编辑配置
vim /usr/local/etc/frp/frpc.ini
// 新版路径
vim /opt/homebrew/etc/frp/frpc.ini
// 启动服务
brew services start frpc
frpc.ini 配置
[common]
server_addr = your_server_addr
server_port = 7000
tls_enable = true
token = your_token
[vnc]
type = tcp
local_ip = 127.0.0.1
local_port = 5900 // 本地 vnc 默认端口
remote_port = 8050 // 远程访问时使用的端口
use_compression = true
use_encryption = true
3、远程连接
可以安装 VNC Viewer 进行访问。
如果使用 macOS,
- 打开 Finder -> Go -> Connect to Server,或者使用快捷键 Command + K;
- 输入 vnc://your_server_addr:8050,然后点击 Connect;
- 弹出输入框,输入 Mac 用户名及锁屏密码。