《通過ssh轉發實現穩定連接海外服務器》要點:
本文介紹了通過ssh轉發實現穩定連接海外服務器,希望對您有用。如果有疑問,可以聯系我們。
連接海外服務器網絡非常的不穩定,這里我們通過某廠云私有網絡的對等連接及iptables來實現穩定連接海外服務器.
3、實踐
首先在上海區域購買一個私有網絡(vpc),然后劃分好網段,再購買一臺服務器加入私有網絡.同樣的在香港區域再購買一個私有網絡(vpc),然后劃分好網段,再購買一臺服務器加入私有網絡.最后使用對等連接使香港vpc與上海vpc打通.這樣上海云主機與香港云主機的內網打通.
在香港云主機部署一個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代理程序轉發.
利用我們在第三步搭建的上海云主機與香港云主機之間的專線,再加上iptables,我們可以實現向海外服務器快速分發文件,監控數據實時回傳到大陸等工作.
scp也支持ProxyCommand功能.同ssh.可以仿照登錄腳本,寫個文件分發代理腳本.快速實現文件分發與回傳.
作者介紹
王利淼,杭州電魂網絡科技股份有限公司運維工程師,負責國內某端游、海外N個區手游、H5游戲等.
原文來自微信公眾號:云技術實踐
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/4285.html