使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化
2017-11-28 00:00
465 查看
一、搭建SSH反向代理
准备:局域网主机(虚拟主机): 192.168.6.233 CentOS 6.7
阿里云服务器:120.25.68.60 CentOS 6.7
1. 阿里云服务器120.25.68.60上需要修改sshd_config配置文件:
[root@120.25.68.60 ~]# vi /etc/ssh/sshd_config GatewayPorts yes [root@120.25.68.60 ~]# service sshd reload Reloading sshd: [ OK ]
2. 通过局域网虚拟机192.168.6.233 连接到120.25.68.60开启反向端口代理,输入阿里云服务器密码.
root@192.168.6.233:~ # ssh -CqTfnN -R 0.0.0.0:7233:192.168.6.233:22 root@120.25.68.60 root@120.25.68.60's password:
3.在阿里云服务器120.25.68.60上可以看到这个监听.
[root@120.25.68.60 ~]# netstat -anp | grep7233 tcp 000.0.0.0:72330.0.0.0:* LISTEN 2392/sshd tcp 00 :::7233 :::* LISTEN 2392/sshd
4.现在到其他客户机上连接阿里云服务器120.25.68.60的7233端口,输入局域网虚拟主机192.168.6.233的主机密码.
[root@192.168.4.194 ~]# ssh -p 7233 root@120.25.68.60 root@120.25.68.60's password: Last login: Thu Mar 2411:01:152016 from 192.168.6.233 [root@phpdragon_233 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:50:56:34:8B:4D inet addr:192.168.6.233 Bcast:192.168.6.255 Mask:255.255.255.0 inet6 addr: fe80::250:56ff:fe34:8b4d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1321125 errors:0 dropped:0 overruns:0 frame:0 TX packets:1232406 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:450626290 (429.7 MiB) TX bytes:273698355 (261.0 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:524375 errors:0 dropped:0 overruns:0 frame:0 TX packets:524375 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:43705227 (41.6 MiB) TX bytes:43705227 (41.6 MiB)
到这里反向代理的测试完成,功能OK.
二、反向代理无人值守化
1.设置局域网主机192.168.6.233免密码登录到阿里云120.25.68.60. 参见 ssh-keygen' target='_blank'>http://www.cnblogs.com/phpdragon/p/4521116.html
[code=plain]ssh-keygen -t rsa -P ''scp ~/.ssh/id_rsa.pub root@120.25.68.60:/tmp/id_rsa.pub_233 ssh -l root 120.25.68.60cat /tmp/id_rsa.pub_233 >> ~/.ssh/authorized_keys2.阿里云服务器编写ssh代理关闭脚本 kill_ssh_agent.sh
#!/bin/shif [ -n "$1" ] && [ "$1" -gt "0" ];then PID=$(netstat -anp | grep $1 | awk'/sshd/ && !/awk/{print $7}') PID=${PID%%/*} if [ -n "${PID}" ];then kill -9 $PID && exit 0 fi fi exit 1
3.客户端编写代理链接守护脚本 ssh_agent_deamon.sh
######################################################################### # File Name: ssh_agent_deamon.sh # Author: phpdragon # mail: phpdragon@qq.com # Created Time: Thu 24 Mar 201601:55:49 PM CST ######################################################################### #!/bin/bash ROMOTE_USERNAME=root ROMOTE_SERVER_IP="120.25.68.60" ROMOTE_PORT=7233 ###[ /sbin/ifconfig|sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p'|grep -v 127.0.0.1 ] LOCALHOST_IP=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk'{print $2}'|tr -d "addr:"` LOCALHOST_PORT=22whiletrue ; do PID=$(ssh -l root ${ROMOTE_SERVER_IP} netstat -anp | grep ${ROMOTE_PORT} | awk'/sshd/ && !/awk/{print $7}') PID=${PID%%/*} if [ -n "$PID" ] && [ "$PID" -gt "0" ];then sleep 30s else /usr/bin/ssh -l root ${ROMOTE_SERVER_IP} /bin/sh /data/kill_ssh_agent.sh ${ROMOTE_PORT} /usr/bin/ssh -CqTfnN -R 0.0.0.0:${ROMOTE_PORT}:${LOCALHOST_IP}:${LOCALHOST_PORT} ${ROMOTE_USERNAME}@${ROMOTE_SERVER_IP} fi done exit 0
4.设置ssh连接为长连接
vi /etc/ssh/sshd_config #每1分钟发送一个心跳信号给客户端 ClientAliveInterval 60 #最大超时次数,客户端不响应则关闭连接 ClientAliveCountMax 3
5.设置为随机启动
vi /etc/rc.local /bin/sh /data/ssh_agent_deamon.sh &
到此设置完毕。
相关文章推荐
- 使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化
- 使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化
- 使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化
- 利用反向 SSH:服务器访问本地电脑: 不同局域网之间的相互访问
- SSH反向代理实现外网访问内网服务器
- 利用灵雀云免费主机做反向ssh端口转发,实现内网服务器的外网访问_20160107_七侠镇莫小贝
- SSH通过反向代理访问局域网内电脑
- linux-使用ssh做代理来连接局域网内部电脑
- SSH 反向代理模式中,在连接公网服务器给局域网电脑映射的端口时 遇到的 connection refused 问题
- 利用灵雀云免费主机做反向ssh端口转发,实现内网服务器的外网访问_20160107_七侠镇莫小贝
- 局域网内主机ssh访问服务器宿主下VMWare 虚拟机(Ubuntu 12.04.1)并且实现虚拟机能上网的那点事
- 操作必须使用一个可更新的查询;HTTP 500 - 内部服务器错误; 您未被授权查看该页;您不具备使用所提供的凭据查看该目录或页的权限;HTTP 错误 401.3 - 访问被资源 ACL 拒绝
- 利用Squid反向代理搭建CDN缓存服务器加快Web访问速度
- 配置Apache将自己的电脑做服务器使局域网内的电脑访问自己的主机
- ssh 使用新法:公网(合法 ip)用户访问内网(私有 ip)服务器(http,ftp,sshd,cvs...),内网的朋友不妨一看。
- 内网主机通过公网地址访问内部服务器配置案例
- ssh反向代理使用