首页 运维干货通过ssh转发实现稳定连接海外服务器

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

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

1、架构

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

2、说明

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

3、实践

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

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

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

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

iptables -A FORWARD -s hz_ip -d 10.168.0.2 -p tcp -m tcp –dport 8080 -j ACCEPT
iptables -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:8080
iptables -t nat -A POSTROUTING -d 10.168.0.2 -j SNAT –to-source 192.168.0.2

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

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

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

系统CentOS 7

#!/bin/bash

export user=$USER
if [[ $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} -p22
else
echo “ERR: $1 is not a ip!”
fi

系统CentOS 6

#!/bin/bash

export user=$USER
if [[ $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} -p22
else
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游戏等。

原文来自微信公众号:云技术实践

本文链接:https://www.yunweipai.com/12441.html

网友评论comments

回复 666 取消回复

您的电子邮箱地址不会被公开。

  1. 666说道:

    这个有用

Copyright © 2012-2022 YUNWEIPAI.COM - 运维派 京ICP备16064699号-6
扫二维码
扫二维码
返回顶部