adtop
adtop01
当前位置: 重庆热线 > 行业资讯 > 正文

通过ssh转发实现稳定连接海外服务器

   来源:重庆热线    发布时间:2017-04-03 18:26

1

架构

通过ssh转发实现稳定连接海外服务器

2

说明

连接海外服务器网络非常的不稳定,这里我们通过某厂云私有网络的对等连接及iptables来实现稳定连接海外服务器。

3

实践

首先在上海区域购买一个私有网络(vpc),然后划分好网段,再购买一台服务器加入私有网络。同样的在香港区域再购买一个私有网络(vpc),然后划分好网段,再购买一台服务器加入私有网络。最后使用对等连接使香港vpc与上海vpc打通。这样上海云主机与香港云主机的内网打通。

通过ssh转发实现稳定连接海外服务器

在香港云主机部署一个tinyproxy作为代理,监听在10.168.0.2:8080。

在上海云主机加入如下防火墙:

iptables -A FORWARD -s hz_ip -d 10.168.0.2 -p tcp -m tcp --dport 8080 -j ACCEPTiptables -t nat -A PREROUTING -s hz_ip -d 192.168.0.2 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 10.168.0.2:8080iptables -t nat -A POSTROUTING -d 10.168.0.2 -j SNAT --to-source 192.168.0.2

在北美、新加坡、韩国等机房的服务器上面加入防火墙,允许香港云主机访问其ssh端口(22)。

在公司跳板机加入防火墙,允许其访问上海云主机的8080端口。

在公司跳板机加入如下登录脚本:

系统CentOS 7

#!/bin/bashexport user=$USERif [[ $1 =~ ([0-9]{1,3}.){3}[0-9]{1,3} ]]; then/usr/bin/ssh -A -o StrictHostKeyChecking=no -o "ProxyCommand=/usr/bin/nc --proxy sh_ip:8080 %h %p" -l ${user} ${1} -p22else echo "ERR: $1 is not a ip!"fi

系统CentOS 6

#!/bin/bashexport user=$USERif [[ $1 =~ ([0-9]{1,3}.){3}[0-9]{1,3} ]]; then/usr/bin/ssh -A -o StrictHostKeyChecking=no -o "ProxyCommand=/usr/bin/nc -X connect -x sh_ip:8080 %h %p" -l ${user} ${1} -p22else echo "ERR: $1 is not a ip!"fi

保存登录脚本为login放到系统环境变量里面,例如,北美一个服务器ip为na_ip,直接执行:login na_ip。这样就可以登录北美服务器。

注意:

centos6与centos7登录脚本不同的原因为系统提供的nc不一样。centos6为nc,centos7为nmap-ncat。

在使用securecrt或者xshell时打开OpenSSH代理程序转发。

4

其他

利用我们在第三步搭建的上海云主机与香港云主机之间的专线,再加上iptables,我们可以实现向海外服务器快速分发文件,监控数据实时回传到大陆等工作。

scp也支持ProxyCommand功能。同ssh。可以仿照登录脚本,写个文件分发代理脚本。快速实现文件分发与回传。

王利淼,杭州电魂网络科技股份有限公司运维工程师,负责国内某端游、海外N个区手游、H5游戏等。

相关阅读:

高端私有云项目交流群,欢迎加入!

通过ssh转发实现稳定连接海外服务器
通过ssh转发实现稳定连接海外服务器
通过ssh转发实现稳定连接海外服务器
通过ssh转发实现稳定连接海外服务器

交流 分享 提升

通过ssh转发实现稳定连接海外服务器
通过ssh转发实现稳定连接海外服务器
adl03
adr1