利用frp进行内网穿透
本文仅在 macOS 上试验
内网穿透
内网穿透技术是指将没有固定公网 IP 的设备的内容暴露到公网上,这样就能通过公网远程访问设备的内容。本人的用途一般是在外控制家里的 Mac 电脑的文件与进程,因而只穿透 ssh 服务。
个人电脑上的操作
用homebrew
安装frp
客户端
brew install frpc |
修改/opt/homebrew/etc/frp/frpc.toml
文件,写入以下内容:
serverAddr = <server-ip> |
22
为 mac 的 ssh 登录默认端口,可修改。
MacSetting ➔ General ➔ Sharing ➔ Remote Login 打开
修改/private/etc/ssh/sshd_config.d/100-macos.conf
文件,将UsePAM
设置为no
创建/private/etc/ssh/sshd_config.d/self.conf
文件,写入以下内容:
Port 22 |
一般来说 mac 用户名对应的密码都是简单密码,用于远程登录风险极大,建议采用密钥登录。
最后启动frpc
服务
brew services start frpc |
服务器上的操作
首先需要一台有公网 IP 的服务器,在github-frp中下载适合服务器系统的文件,假设放到了/root/frps
文件夹下,该文件夹下只需保留frps
,frps.toml
文件。
修改frps.toml
文件,如下:
bindPort = <port1> |
这里的<port1>
应和frpc.toml
中的<port1>
一致,
创建frps
的守护进程,首先创建/etc/systemd/system/frps.service
文件,写入以下内容:
[Unit] |
防火墙打开对应端口
ufw allow <port1> |
再运行该服务
systemctl daemon-reload |
第三台机器上的操作
如果要在第三台机器上访问 mac 上的内容,首先需要将 ssh 公钥放进 mac 的~/.ssh/authorized_keys
当中,在本地保存好 ssh 私钥。通过以下命令连接
ssh <mac-user>@<server-ip> -p <port2> |