使用ssh的反向代理让内网网站通过外部服务器访问

  • 内网的服务器1上有网站,但是端口不开放,网站无法在公网上被访问。但是,此内网服务器1本身可以访问外网,于是可以通过ssh反向代理,让内网服务器1首先连接另一台端口可以在公网被访问的服务器2,通过服务器2来访问服务器1上的网站。

  • ssh 反向代理转发的操作:

    # 服务器2上
    首先ssh登录到公网主机,修改sshd的配置文件/etc/ssh/sshd_config
    GatewayPorts yes #(这一句是精髓)
    重启sshd,如下
    service sshd restart
    # 服务器1上:
    ssh -p {服务器2ssh端口} -i {登陆的公钥} -qTfNn -R {服务器2端口}:localhost:{服务器1端口} root@服务器2的ip
    -q, Quiet mode. Causes most warning and diagnostic messages to be suppressed
    -T, Disable pseudo-tty allocation. 
    -f, 后台执行
    -N, 不执行命令
    -n, Redirects stdin from /dev/null (actually, prevents reading from stdin) his must be used when ssh is run in the background.
    -R, 远程端口转发
    

    当然为了保持服务稳定,还要在内网主机上设置心跳信号来保持连接,修改内网主机的~/.ssh/config文件,增加

    ServerAliveInterval 60
    ServerAliveCountMax 9999999999
    
      第一个参数表示如果服务器(外网)没数据发来则过60秒客户端(内网)会发送一个空包到服务器,以保持tcp长连接,默认值为0,表示不会发心跳包,所以这里设置为60秒。
      第二个参数表示,如果服务器(内网)没有收到心跳包指定次数,就中断连接。
    

于是就这样运行了半个月,服务一直都有

参考

ssh转发1[1]

ssh转发实战2[2]

不懂iptables原理只能照抄这个[3]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值