Ubuntu服务器(公网)- Ubuntu客户端(内网)的FRP内网穿透配置教程

以下是为Ubuntu服务器(公网)- Ubuntu客户端(内网)的FRP内网穿透配置教程,基于最新版本(2025年6月,使用frp_0.61.1_linux_amd64)整理:


一、服务端配置(公网Ubuntu服务器)

1. 下载与安装
# 下载FRP(版本需与客户端一致)
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
tar -zxvf frp_0.61.1_linux_amd64.tar.gz -C /usr/local/
mv /usr/local/frp_0.61.1_linux_amd64 /usr/local/frp
cd /usr/local/frp
rm -f frpc*  # 删除客户端文件<x-preset class="no-tts reference-tag disable-to-doc" data-index="3">3</x-preset><x-preset class="no-tts reference-tag disable-to-doc" data-index="4">4</x-preset>
2. 配置文件 frps.toml
[common]
bind_port = 7000       # 客户端连接端口
token = your_token_123 # 认证密钥(需客户端一致)
dashboard_port = 7500   # 监控面板端口
dashboard_user = admin
dashboard_pwd = your_dashboard_pwd
log_file = ./frps.log
log_level = info
3. 启动服务端
# 临时启动(测试用)
./frps -c frps.toml

# 配置systemctl开机启动
sudo tee /etc/systemd/system/frps.service << EOF
[Unit]
Description=Frp Server
After=network.target

[Service]
User=root
WorkingDirectory=/usr/local/frp
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.toml
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

# 启动并设置开机自启
sudo systemctl daemon-reload
sudo systemctl start frps
sudo systemctl enable frps
4. 防火墙放行端口
sudo ufw allow 7000/tcp  # 客户端连接端口<x-preset class="no-tts reference-tag disable-to-doc" data-index="4">4</x-preset>
sudo ufw allow 7500/tcp  # 监控面板端口

二、客户端配置(内网Ubuntu机器)

1. 下载与安装
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
tar -zxvf frp_0.61.1_linux_amd64.tar.gz -C /usr/local/
mv /usr/local/frp_0.61.1_linux_amd64 /usr/local/frp
cd /usr/local/frp
rm -f frps*  # 删除服务端文件<x-preset class="no-tts reference-tag disable-to-doc" data-index="3">3</x-preset><x-preset class="no-tts reference-tag disable-to-doc" data-index="4">4</x-preset>
2. 配置文件 frpc.toml
[common]
server_addr = 公网服务器IP  # 替换为实际IP
server_port = 7000
token = your_token_123    # 与服务端一致

[ssh]  # 暴露SSH服务(示例)
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000        # 公网访问的端口<x-preset class="no-tts reference-tag disable-to-doc" data-index="2">2</x-preset><x-preset class="no-tts reference-tag disable-to-doc" data-index="4">4</x-preset>
3. 启动客户端
# 临时启动(测试用)
./frpc -c frpc.toml

# 配置systemctl开机启动
sudo tee /etc/systemd/system/frpc.service << EOF
[Unit]
Description=Frp Client
After=network.target

[Service]
User=root
WorkingDirectory=/usr/local/frp
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.toml
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl start frpc
sudo systemctl enable frpc

三、连接验证

  1. SSH访问内网机器(通过公网IP):
   ssh -p 6000 你的内网用户名@公网服务器IP
   
  1. 查看监控面板: 浏览器访问 http://公网服务器IP:7500,输入用户名admin和密码your_dashboard_pwd

  2. 日志排查

    • 服务端日志:tail -f /usr/local/frp/frps.log
    • 客户端日志:tail -f /usr/local/frp/frpc.log

四、高级配置

1. HTTPS穿透(Web服务)
# frpc.toml 添加配置
[web]
type = https
custom_domains = your.domain.com  # 需绑定域名
local_port = 80
2. XTCP点对点穿透(减少服务器带宽占用):
# 服务端启用 xtcp 支持
[common]
bind_udp_port = 7001  # 新增配置
# 客户端配置(客户端A与B均需配置)
[p2p_ssh]
type = xtcp
sk = your_secret_key  # 双方密钥相同
local_ip = 127.0.0.1
local_port = 22

五、注意事项

  1. 安全配置

    • 修改默认的token和仪表盘密码。
    • 建议非必要不开放dashboard_port到公网。
  2. 端口管理

    • 若使用公共服务器,可能需通过工单申请端口(如中国科技大学试验环境要求)。
  3. 版本一致性:服务端与客户端需使用相同FRP版本。

如需其他协议(如HTTP/UDP)或插件支持,可参考FRP官方文档

### 在 Ubuntu配置 FRP 实现内网穿透 #### 安装依赖工具 为了能够顺利运行 `curl` 和其他必要的工具,在开始之前需要确保系统已经安装了这些基础软件包。可以通过以下命令完成安装: ```bash sudo apt update && sudo apt install -y curl wget unzip ``` #### 下载并解压 Frp 文件 访问官方 GitHub 或者可信资源站点下载最新版本的 Frp 压缩文件。以下是基于 Linux 的通用方法,适用于 AMD64 架构: ```bash wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz tar -zxvf frp_0.38.0_linux_amd64.tar.gz cd frp_0.38.0_linux_amd64/ ``` 上述命令会将 Frp 解压缩到当前目录下。 #### 配置服务端 (VPS) 1. **编辑服务端配置文件 (`frps.ini`)** 修改默认的服务端监听端口以及其他参数以满足需求。例如: ```ini [common] bind_port = 7000 # 设置客户端连接 VPS 所需的端口号 dashboard_port = 7500 # Web 控制台端口(可选) token = your_token # 自定义密钥用于验证客户端和服务端通信安全 vhost_http_port = 8088 # HTTP 流量转发使用的外部端口 ``` 2. **启动服务端程序** 使用如下方式后台运行服务端进程: ```bash nohup ./frps -c ./frps.ini & ``` 此外也可以按照引用中的说明将其注册为 systemd 服务以便于管理和自动重启[^3]。 #### 配置客户端 (本地机器) 同样地复制一份模板作为客户端配置文件(`frpc.ini`)的基础框架,并调整其中的关键字段匹配实际环境情况: ```ini [common] server_addr = xxx.xxx.xxx.xxx # 替换为你自己的公网 IP 地址或者域名解析后的地址 server_port = 7000 # 对应上面设置好的绑定端口数值 token = your_token # 这里要跟 server side 中的一致 [ssh] type = tcp # 协议类型 local_ip = 127.0.0.1 # 被映射的目标内部网络设备 ip local_port = 22 # SSH 默认端口或者其他应用开放的具体位置 remote_port = 6000 # 外部暴露给互联网用户的入口通道编号 ``` 保存修改之后执行下面指令开启代理链路: ```bash nohup ./frpc -c ./frpc.ini & ``` 此时应该可以从任意地方通过 `<vps-public-ip>:<remote-port>` 来尝试登录目标主机上的 ssh 用户账户了。 --- ### 注意事项 - 确保防火墙允许指定范围内的数据交换活动发生。 - 如果遇到任何错误消息,请仔细检查日志输出寻找线索解决问题所在之处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰雪青松

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值