端口转发访问内网ip

两种解决方案
  • rinetd端口转发
  • ssh tunnel实现

rinetd

官网地址:https://boutell.com/rinetd/

  1. wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf
    rinetd.tar.gz&&cd rinetd

  2. sed -i 's/65536/65535/g' rinetd.c (修改端口范围,否则会报错)

  3. mkdir /usr/man&&make&&make install

  4. 编辑配置
    vi /etc/rinetd.conf
    0.0.0.0 8080 172.19.94.3 8080
    0.0.0.0 2222 192.168.0.103 3389
    1.2.3.4 80 192.168.0.10 80

    说明一下(0.0.0.0表示本机绑定所有可用地址)
    将所有发往本机8080端口的请求转发到172.19.94.3的8080端口
    将所有发往本机2222端口的请求转发到192.168.0.103的3389端口
    将所有发往1.2.3.4的80端口请求转发到192.168.0.10的80端口

    命令格式是:
    bindaddress bindport connectaddress connectport
    绑定的地址 绑定的端口 连接的地址 连接的端口

    [Source Address] [Source Port] [Destination Address] [Destination Port]
    源地址 源端口 目的地址 目的端口

  5. 启动程序
    pkill rinetd ##关闭进程
    rinetd -c /etc/rinetd.conf ##启动转发

    把这条命令加到/etc/rc.local里面就可以开机自动运行

  6. 查看状态
    netstat -antup

ssh tunnel

Created with Raphaël 2.1.0 客户端 客户端 公网机器 公网机器 内网机器 内网机器 客户端访问公网机器 公网机器访问内网机器

通过客户端ssh连接公网机器,客户端监听端口请求,并使用公网机器转发到内网机器

  • 对于windows客户端
    使用putty连接公网机器,设置putty中的ssh tunnel来监听端口请求

  • 对于linux客户端
    使用ssh来连接公网机器,通过ssh参数形式来配置需要监听的端口以及转发的地址和端口

如何让ssh连接服务器或者sshtunnel保持连接?
在/etc/ssh/ssh_config文件里加两个参数
TCPKeepAlive yes #保持连接
ServerAliveInterval 300 #每过5分钟发一个数据包到服务器表示我还活着

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值