frp内网穿透实例

(目前仅实现了SSH功能)

问题: 具有公网IP的计算机A需要访问仅有内网IP的gpu服务器C。

情况: 本来想通过具有内网和外网ip的跳板机D实现转发。但不知D做了何种设置,A始终连不上D。

解决方案: 使用了一台具有公网ip的云服务器B。保证A与B能ping通。在B和C之间建立frp。具有公网ip的B作为服务端,gpu服务器C作为客户端。


配置文件

frps.ini (B中配置):

[common]
bind_addr = 0.0.0.0
bind_port = 7000

# udp port to help make udp hole to penetrate nat
bind_udp_port = 7001

dashboard_port = 7500
# dashboard 用户名密码,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin

vhost_http_port = 2780
subdomain_host = p2pnet.club

frpc.ini ( C中配置):

[common]
server_addr = X.X.X.X (云服务器B的ip)
server_port = 7000
admin_addr = 127.0.0.1
admin_port = 7400

[ssh]
local_ip = 127.0.0.1
local_port = 22
remote_port = 7022

[web]
type = http
local_port = 2780
subdomain = office

实现步骤:

  1. 下载frp工具,分别在B和C上安装/解压。
  2. 按上述配置修改配置文件
  3. 在B的frp相应目录 ./frps -c frps.ini
  4. 这之后,在C的frp相应目录 ./frpc -c frpc.ini

此时frp建立完毕。可以在A或者B访问gpu服务器C


使用方式


通过B访问服务器:

先从A登录B,在B端输入:

 ssh -p <frpc.ini中remote_port> <C用户名>@localhost

例如:

ssh -p 7022 root@localhost

通过A访问服务器:

在A端,

ssh -p <frpc.ini中remote_port>  <B用户名>@<B的公网ip>

例如:

 ssh -p 7022 root@X.X.X.X

会要求你输入gpu服务器C的密码,无需知道服务器B的密码。

相当于将B的7022端口和C的22号端口绑定,A和C之间的消息通过B转发。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值