【frp内网穿透】
1. frp服务器配置
- 准备一台具有公网IP的服务器(阿里云、腾讯云、京东云等,以腾讯云为例);
- frp下载页面,下载对应版本(amd64、arm64等);
- 解压后将所有文件复制到
/opt/frp/目录下,执行chmod 777 /opt/frp/frps; - 编辑frps.toml:
bindPort = 7000 # frps服务器和客户端通讯的端口号 vhostHTTPPort = 8080 # http映射端口 - 配置后台服务,创建文件
/etc/systemd/system/frps.service```bash [Unit] Description=frp server After=network.target syslog.target Wants=network.target
[Service] Type=simple
你的 frps 启动命令(路径正确的话无需修改)
ExecStart=/opt/frp/frps -c /opt/frp/frps.toml
故障时自动重启(核心优化)
Restart=on-failure
重启前等待5秒,避免死循环
RestartSec=5s
可选:限制服务启动超时时间
TimeoutStartSec=30s
[Install] WantedBy=multi-user.target
6. 重新加载:`sudo systemctl daemon-reload`
7. 启动服务:`sudo systemctl start frps`
8. 查看状态:`sudo systemctl status frps`
9. 设置服务开机自启:`sudo systemctl enable frps`
## 2. frp客户端配置
1. 同服务器配置的123步骤;
2. 编辑**frpc.toml**:
```bash
serverAddr = "xxx.xxx.xxx.xxx" # 公网IP
serverPort = 7000
[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6060 # 设置一个没被占用的端口号
- 配置后台服务,创建文件
/etc/systemd/system/frpc.service```bash [Unit] Description=frp client After=network.target network-online.target syslog.target Wants=network.target network-online.target
[Service] Type=simple ExecStart=/opt/frp/frpc -c /opt/frp/frpc.toml Restart=on-failure TimeoutStartSec=30s
[Install] WantedBy=multi-user.target
4. 重新加载:`sudo systemctl daemon-reload`
5. 启动服务:`sudo systemctl start frpc`
6. 查看状态:`sudo systemctl status frpc`
7. 设置服务开机自启:`sudo systemctl enable frpc`
## 3. 腾讯云安全组设置
为了能实现内网穿透,还需要再腾讯云控制台添加安全组。
- 找到防火墙页面,添加规则;
- 应用类型:自定义
- 来源:全部IPv4和IPv6地址
- 协议:TCP
- 端口:6060(客户端设置的端口)
- 若有多个客户端,则添加多个规则。
- 还需要添加7000端口到规则中。
## 4. 连接
```bash
ssh $USER@xxx.xxx.xxx.xxx -p 6060
# ssh ubuntu@111.123.65.78 -p 6060