内网穿透部署¶
约 703 个字 58 行代码 预计阅读时间 3 分钟
资源准备¶
- 内网穿透软件包:frp,下载
frp_0.65.0_linux_amd64.tar.gz - 可以连接公网的云服务器(本次是Ubuntu 24.04)
- 本地虚拟机(本次是Ubuntu 24.04)
云服务器frp服务配置¶
下载并解压内网穿透软件包,打开frps.toml文件,里面存放着当前frp服务的服务端端口,这个端口用于后续frp客户端进行连接,例如设置端口为8081:
| INI | |
|---|---|
1 | |
使用下面的命令启动frp服务:
| Bash | |
|---|---|
1 2 | |
启动后可以看到云服务器开始在0.0.0.0:8081端口开始监听
本地虚拟机frp服务配置¶
打开frpc.toml文件,首先配置要连接的frp服务端IP地址和端口,例如:
| INI | |
|---|---|
1 2 | |
接下来配置代理,例如:
| INI | |
|---|---|
1 2 3 4 5 6 | |
这个配置的作用是将本地机器的SSH服务(端口22)通过frp服务器暴露到公网。当通过云服务器8.110.214.88:9011端口连接时,frp会将这个连接转发到本地机器的127.0.0.1:22端口,从而实现远程SSH登录到内网机器的功能
Note
需要注意的是,localPort和remotePort可以相同,不会产生冲突,因为二者本身不在同一台机器上,localPort工作在本地虚拟机,remotePort工作在云服务器上,只要云服务器没有在指定端口上运行程序就不会出现问题
使用下面的命令启动frp服务:
| INI | |
|---|---|
1 2 | |
一旦连接成功,可以在frp服务端看到有客户端连接成功的日志
Note
注意:
- 现在可能还不能通过公网的任意一台设备进行连接,需要配置云服务器的安全组,开放的端口即为上面设置的7011和9011,访问来源是任意即可
- 如果虚拟机开启了防火墙(可以使用
sudo ufw status),则需要配置端口,例如:Bash 1sudo ufw allow 9011
开启本地虚拟机frp服务开机自启动¶
Note
云服务器因为很少关机,所以基本上不配置,如果需要配置,只需要按照本地虚拟机的配置方式照葫芦画瓢即可,但是需要改变涉及到frpc的地方为frps
配置步骤如下:
- 将
frpc文件和其配置文件放到系统指定目录下 -
改变文件的拥有者并设置可执行权限
Bash 1 2 3 4 5
sudo mkdir -p /etc/frp sudo cp /home/yourname/frpc.toml /etc/frp/frpc.toml # /home/yourname替换为实际的frpc.toml文件所在目录 sudo cp /home/yourname/frpc /usr/local/bin/frpc # # /home/yourname替换为实际的frpc文件所在目录 sudo chown root:root /usr/local/bin/frpc sudo chmod +x /usr/local/bin/frpc -
创建
systemd服务文件Bash 1sudo vim /etc/systemd/system/frpc.service # 也可以使用其他文本编辑器 -
编辑配置文件内容
INI 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
[Unit] Description=FRP Client Service # frp服务端就将Client修改为Server After=network.target [Service] Type=simple User=root Group=root ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.toml # 如果是frp服务端,需要配置为frps,就是第一步拷贝的文件路径 Restart=always RestartSec=3 LimitNOFILE=1048576 [Install] WantedBy=multi-user.target说明:
User=root:如果你的frp需要绑定80、443等特权端口,必须用root。如不需要,可改为你自己的用户Restart=always:崩溃后自动重启LimitNOFILE=1048576:提升文件描述符限制,避免高并发时出错After=network.target:确保网络启动后再启动frp服务
-
重载
systemd配置并启用自启动Bash 1 2 3 4 5 6 7 8 9 10 11
# 重载systemd配置 sudo systemctl daemon-reload # 启用开机自启 # 如果是frp服务端,需要将frpc修改为frps,后面类似 sudo systemctl enable frpc # 启动服务 sudo systemctl start frpc # 查看状态 sudo systemctl status frpc # 查看日志(实时) sudo journalctl -u frpc -f
其他服务管理命令:
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 | |