使用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. 在本地电脑上打开终端,输入以下命令建立 SSH 隧道连接: ``` ssh -L <本地端口号>:<目标服务器IP>:<目标服务器端口号> <跳板机用户名>@<跳板机IP> ``` 其中,`<本地端口号>` 是你本地电脑上任意一个未被占用的端口号;`<目标服务器IP>` 和 `<目标服务器端口号>` 是你要访问内网服务器的 IP 地址和端口号;`<跳板机用户名>` 和 `<跳板机IP>` 分别是你连接跳板机的用户名和 IP 地址。 例如,如果要通过跳板机连接 IP 地址为 `192.168.1.100`,端口号为 `22` 的内网服务器,可以使用以下命令: ``` ssh -L 8888:192.168.1.100:22 user@jumpserver.com ``` 2. 输入跳板机的登录密码进行身份验证。 3. 成功连接跳板机后,在终端中输入以下命令连接内网服务器: ``` ssh -p <本地端口号> <内网服务器用户名>@localhost ``` 其中,`<本地端口号>` 是你在第一步中指定的本地端口号;`<内网服务器用户名>` 是你要登录的内网服务器的用户名。 例如,如果在第一步中使用的本地端口号为 `8888`,要登录的内网服务器的用户名为 `root`,可以使用以下命令: ``` ssh -p 8888 root@localhost ``` 4. 输入内网服务器的登录密码进行身份验证。 5. 成功登录内网服务器后,在终端中输入 `exit` 命令退出 SSH 连接。 6. 在浏览器中输入 `http://localhost:8080` 访问内网服务器的 Web 应用程序,其中 `8080` 是你要访问的应用程序的端口号。 注意:以上命令中的 IP 地址、端口号和用户名等参数都需要根据实际情况进行替换。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值