介绍
5年前就开始断断续续使用frp,除了 nat 功能外,在某些网络协议受限的情况下使用它也非常有效。这篇文章稍微记录它的一些操作。
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
github:https://github.com/fatedier/frp
下载
https://github.com/fatedier/frp/releases/tag/v0.52.3
我的服务端是Linux,下载:frp_0.52.3_linux_amd64.tar.gz
客户端是Mac,下载:frp_0.52.3_darwin_arm64.tar.gz
服务端
使用 systemd管理:
文件/etc/systemd/system/frps.service
[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /var/local/frp/frps -c /var/local/frp/frps.toml
[Install]
WantedBy = multi-user.target
配置文件frps.toml
:
bindPort = 7000
命令行设置:
systemctl daemon-reload
systemctl enable frps.service
systemctl restart frps.service
客户端
Mac 下使用 launchd 管理:
文件 ~/Library/LaunchAgents/frpc.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>frpc</string>
<key>ProgramArguments</key>
<array>
<string>/Users/kelu/Workspace/bin/frp_0.52.3_darwin_arm64/frpc</string>
<string>-c</string>
<string>/Users/kelu/Workspace/bin/frp_0.52.3_darwin_arm64/tmp.toml</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
命令行设置:
launchctl load ~/Library/LaunchAgents/frpc.plist
launchctl restart frpc