一、搭建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::192.168.6.233: root@120.25.68.60
root@120.25.68.60's password:

3.在阿里云服务器120.25.68.60上可以看到这个监听.

[root@120.25.68.60 ~]# netstat -anp | grep
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp ::: :::* LISTEN /sshd

4.现在到其他客户机上连接阿里云服务器120.25.68.60的7233端口,输入局域网虚拟主机192.168.6.233的主机密码.

[root@192.168.4.194 ~]# ssh -p  root@120.25.68.60
root@120.25.68.60's password:
Last login: Thu Mar :: from 192.168.6.233 [root@phpdragon_233 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr ::::8B:4D
inet addr:192.168.6.233 Bcast:192.168.6.255 Mask:255.255.255.0
inet6 addr: fe80:::56ff:fe34:8b4d/ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (429.7 MiB) TX bytes: (261.0 MiB) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::/ Scope:Host
UP LOOPBACK RUNNING MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (41.6 MiB) TX bytes: (41.6 MiB)

到这里反向代理的测试完成,功能OK.

二、反向代理无人值守化

1.设置局域网主机192.168.6.233免密码登录到阿里云120.25.68.60. 参见 http://www.cnblogs.com/phpdragon/p/4521116.html

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.60 cat /tmp/id_rsa.pub_233 >> ~/.ssh/authorized_keys

2.阿里云服务器编写ssh代理关闭脚本 kill_ssh_agent.sh

#!/bin/sh

if [ -n "$1" ] && [ "$1" -gt "" ];then
PID=$(netstat -anp | grep $ | 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 Mar :: PM CST
#########################################################################
#!/bin/bash

ROMOTE_USERNAME=root
ROMOTE_SERVER_IP="120.25.68.60"
ROMOTE_PORT=
###[ /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= while true ;
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
#最大超时次数,客户端不响应则关闭连接
ClientAliveCountMax

5.设置为随机启动

vi /etc/rc.local

/bin/sh /data/ssh_agent_deamon.sh &

到此设置完毕。

PS:

http://blog.163.com/digoal@126/blog/static/163877040201451464251856

http://www.cnblogs.com/wangkangluo1/archive/2011/06/29/2093727.html

http://www.cnblogs.com/peida/archive/2013/03/08/2949194.html

http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html

使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化的更多相关文章

  1. [转]使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化

    原文: https://www.cnblogs.com/phpdragon/p/5314650.html ----------------------------------------------- ...

  2. 实现域名访问网站—nginx反向代理

    今天在跟项目的时候,是否被耍了三个多小时,最后在我准备号材料准备他人求助的时候,在收集材料的时候,居然访问通了, 别问我为什么,我也不知道 ,哈哈哈哈(苦逼脸...) 分享出来,大家共同学习: 这个是 ...

  3. nginx反向代理https访问502, nginx反向代理, 支持SNI的https回源,SNI源点,nginx反向代理报错

    正常nginx配置了SSL是可以通过HTTPS访问后端的,但是对有配置SNI + https后端的支持有点麻烦. 编译安装nginx后,看一下是否支持SNI /usr/local/nginx/sbin ...

  4. ssh 设置反向代理

    远程主机上/etc/ssh/sshd_config中,开启 GatewayPorts yes systemctl reload sshd 本地: ssh -CqTnN -R 0.0.0.0:9000: ...

  5. XP局域网访问无权限、不能互相访问问题的完整解决方案

    XP局域网访问无权限问题的完整解决方案: 1:用管理员账户登录系统 2:在“开始”-- “运行”里输入 GPEDIT.MSC 目的是打开组策略选项 3:依次展开”WINDOWS设置”-”本地策略”-” ...

  6. 使用 ssh -R 建立反向/远程TCP端口转发代理

    转自:https://yq.aliyun.com/articles/8469 ssh是一个非常棒的工具, 不但能建立动态转发, 例如chrome的Switchy插件用到的就是这个技术.http://b ...

  7. 使用ssh从外网访问内网

    一.场景如下: 各个角色的对应关系如下: 角色 描述 APP 个人笔记本,属于内网IP sshd server 公网 VPS ( 映射端口: port 2222 ),拥有公网IP ssh client ...

  8. .NET Core项目部署到Linux(Centos7)(九)防火墙配置,允许外网或局域网访问.NET Core站点

    目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...

  9. 使用Cygwin通过ssh命令行来访问Windows8

    安装Cygwin可以参考<如何在Windows中通过Cygwin来使用Linux命令>. 在Win8下貌似有个bug,需要将cygwin\bin\mintty 修改为cygwin\bin\ ...

随机推荐

  1. Windows远程桌面,连接被拒绝,因为没有授权此用户帐户进行远程登录。

    Windows 服务器远程连接的时候,出现错误:“连接被拒绝,因为没有授权此用户帐户进行远程登录.”,导致无法远程登录服务器,如下图所示: 问题分析 该错误一般是由于 Windows 远程桌面相关权限 ...

  2. java知识思维图解

  3. boost.xml_parser中文字符问题 (转)

    当使用xml_parser进行读xml时,如果遇到中文字符会出现解析错误. 网上有解决方案说使用wptree来实现,但当使用wptree来写xml时也会出错.而使用ptree来写中文时不会出错. 综合 ...

  4. 病毒木马查杀实战第020篇:Ring3层主动防御之基本原理

    前言 假设说我们的计算机中安装有杀毒软件,那么当我们有意或无意地下载了一个恶意程序后.杀软一般都会弹出一个对话框提示我们,下载的程序非常可能是恶意程序,建议删除之类的.或者杀软就不提示.直接删除了:或 ...

  5. 微软BI 之SSIS 系列 - 使用 Multicast Task 将数据同时写入多个目标表,以及写入Audit 与增量处理信息

    开篇介绍 在 SSIS Data Flow 中有一个 Multicast 组件,它的作用和 Merge, Merge Join 或者 Union All 等合并数据流组件对比起来作用正好相反.非常直观 ...

  6. 【VSCode】Windows下VSCode便携式c/c++环境

    http://blog.csdn.net/c_duoduo/article/details/52083494 Ver 1.1 完整版(修复mingw环境变量错误)下载: http://pan.baid ...

  7. Spring4学习笔记一:环境搭建与插件安装、基本概念理解

    一:环境搭建 1:开发环境:JDK安装.Eclipse安装 2:数据库:Mysql.Sequel Pro(数据库可视化操作工具) 3:web服务器:Tomcat下载,并且把tomcat配置到Eclip ...

  8. 把linux的man手册转化为windows下可读的格式

    原文链接: http://www.linux521.com/2009/system/200904/1542.html 把linux的man手册转化为windows下可读的格式 我也是一个Linux学习 ...

  9. 第三部分:Android 应用程序接口指南---第二节:UI---第五章 设置(Settings)

    第5章 设置(Settings) 应用程序通常包括允许用户修改应用程序的特性和行为的设置功能.例如,一些应用程序允许用户指定通知是否启用或指定多久使用云同步数据.如果你想要为你的应用程序提供设置,你应 ...

  10. mac mini纯键盘操作连接蓝牙鼠标

    许久不开家里的MAC MINI了,今天开来玩玩,结果进个桌面连接鼠标就费了好大的劲 现实情况: 1. 没有有线鼠标,只有一个USB键盘,一个微软3600蓝牙鼠标 MAC MINI连接上USB键盘,开机 ...