frp搭建流程总结(暴露内网服务器,NAT端口穿透)

简单介绍frp

frp 是一种快速反向代理,允许您将位于 NAT 或防火墙后面的本地服务器暴露给 Internet。
它目前支持TCP和UDP,以及HTTP和HTTPS协议,可以通过域名将请求转发到内部服务。

准备服务器

  • 1台有公网IP的服务器 A(公网IP: 120.1.2.3)作为frp服务端。
  • 1台内网服务器 B(内网IP: 10.2.2.166),该服务器需要暴露给外网。

公网服务器A

  • 登录服务器A,拷贝 frp_0.47.0_linux_arm64.tar.gz 到某个目录,比如 /home/data
  • 解压 tar -zxvf frp_0.47.0_linux_arm64.tar.gz
  • 进入 frp_0.47.0_linux_arm64,配置 frps.ini,指定bind_port,该端口为frp客户端用来连接frp服务端来注册。
# frps.ini
[common]
bind_port = 7000
  • 把frps服务加入supervisor管理,执行 supervisorctl update
[program:frps]
command=/home/data/frp_0.47.0_linux_amd64/frps -c /home/data/frp_0.47.0_linux_amd64/frps.ini
autostart=true
autorestart=true
priority=10
user=root
redirect_stderr=true
stopasgroup=true
killasgroup=true
startretries=999999
stdout_logfile=/var/log/%(program_name)s.std
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=50
  • 启动frps服务端 /supervisorctl start frps
2023/04/11 09:56:43 [I] [root.go:206] frps uses config file: frps.ini
2023/04/11 09:56:44 [I] [service.go:200] frps tcp listen on 0.0.0.0:7000
2023/04/11 09:56:44 [I] [root.go:215] frps started successfully

内网服务器B

  • 登录服务器B,拷贝 frp_0.47.0_linux_arm64.tar.gz 到某个目录,比如 /home/data
  • 解压 tar -zxvf frp_0.47.0_linux_arm64.tar.gz
  • 进入 frp_0.47.0_linux_arm64,配置 frpc.ini,指定server_addr为A的公网地址,指定server_port为frps.ini的bind_port,
    [ssh]改为[ssh6000],当存在多个客户端时,需要使用不同的ssh名字。指定服务器B的SSH端口local_port,remote_port为从公网ssh服务器B时需
    要的端口。
# frpc.ini
[common]
server_addr = 120.1.2.3
server_port = 7000

[ssh6000]  # [ssh]改为[ssh6000],当存在多个客户端时,需要使用不同的ssh名字。
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
  • 把frpc客户端服务加入supervisor管理,执行 supervisorctl update
[program:frpc]
command=/home/data/frp_0.47.0_linux_amd64/frpc -c /home/data/frp_0.47.0_linux_amd64/frpc.ini
autostart=true
autorestart=true
priority=10
user=root
redirect_stderr=true
stopasgroup=true
killasgroup=true
startretries=999999
stdout_logfile=/var/log/%(program_name)s.std
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=50
  • 启动frpc客户端 supervisorctl start frpc
2023/04/11 09:57:08 [I] [service.go:299] [52d830bcea80a311] login to server success, get run id [52d830bcea80a311], server udp port [0]
2023/04/11 09:57:08 [I] [proxy_manager.go:142] [52d830bcea80a311] proxy added: [ssh]
2023/04/11 09:57:08 [I] [control.go:172] [52d830bcea80a311] [ssh6000] start proxy success

frp客户端连接不上?

  • 若使用的是云服务器,需在安全组里放开 bind_port 和 remote_port。此例子中分别为 7000 和 6000。

测试SSH,通过公网访问内部服务器B

  • ssh -p remote_port 服务器B用户名@服务器A公网IP。比如服务器B有个用户为test,此处为 ssh -p 6000 test@120.1.2.3, 输入test对应
    的密码即可访问内网服务器B。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值