ssh隧道远程访问内网

本文介绍了一种通过SSH隧道远程访问公司内网服务器的方法。包括从外部电脑通过VPS服务器访问公司内网服务器的具体步骤,以及如何在内网服务器上创建守护脚本来自动维护SSH连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、通过ssh隧道远程访问公司内网服务器方法
        1,场景  
                  vps主机一台(centos)    --B
                  处于公司内网中的服务器   --C
                  公司外部可连接互联网的电脑 --A
2, 目的
                   在A电脑上通过B服务器访问C
        3,方法
                   a)   在B VPS云服务器上执行
                  ssh  -CfqTnN -L X.X.X.X:27070:127.0.0.1:17070 username@localhost        按提示输入密码
                          X.X.X.X替换成你的B服务器IP,username替换成你的C服务器用户名
                    b)   在C公司内网服务器上执行
                           ssh  -CqfTnN -R 17070:127.0.0.1:22  username@M.M.M.M  -p port  按提示输入密码
                          M.M.M.M、port、username分别替换成你的B服务器IP、ssh端口号 、用户名。
                     c)     在A某电脑上执行
                                ssh username@X.X.X.X -p 27070
                             username与X.X.X.X分别替换为你的B服务器的用户名与IP,这样就可以成功在A某电脑上远程登陆C公司内网服务器了
             4,注意
                        B VPS云服务器的防火墙要开放27070端口

二、在C公司内服务器上创建守护脚本,并设置开机启动,用于启动并监测ssh -CqfTnN ....命令,例:

#! /bin/sh

while true ; do
    sleep 10
    NUM=`netstat -napt |grep ESTABLISHED |grep M.M.M.M |wc -l`    查看BC主机间的连接是否存在,NUM为1,视为存在该连接。
    echo $NUM > /tmp/caosxtest
    if [ "${NUM}" -lt "1" ]; then    //NUM小于1,执行以下命令
        echo "a"
        ssh  -CqfTnN -R 17070:127.0.0.1:22 username@M.M.M.M  -p port
    elif [ "${NUM}" -gt "1" ]; then  //NUM大于1,杀死所以ssh进程,并启动与B服务的连接
        echo "b"
        killall -9 ssh
        ssh  -CqfTnN -R 17070:127.0.0.1:22 username@M.M.M.M  -p port
    fi
done

exit 0

三、在进行以上第二步操作时,需要建立信任关系,把C主机生成的key,放在B服务器上,这样执行守护脚本连接服务器B时,就不需要输入密码了。注意C生成key时要生成root用户的key,执行守护脚本要使用root权限
建立信任关系的方法: http://jingyan.baidu.com/article/925f8cb8f1db23c0dce05675.html
参考:http://blog.youkuaiyun.com/death_spank/article/details/7403554
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值