shell脚本实现代理登陆 一实现基本登陆功能

说明:
从公司登国外服务器那网速真的是。。。但好多游戏都在国外。。。这怎么办。
之前还在想要找些代理,但代理说实在的免费的确实速度不行,收费的感觉也浪费。后面发现国内云服务器登陆国外服务器速度还算正常,因此在国内某云服务器(这里以“跳板机”暂代)上写了个shell,通过shell代理登陆国外服务器。

原理:
通过在各国外服务器上设置成密钥登陆,然后在“跳板机”上通过脚本调用ssh -i ${PemFile} -o StrictHostKeyChecking=no ${User}@${ServerIP}来实现登陆。

具体:
#后面增加服务器的话,只需要在下面添加一行,格式为:序号,主机名,用户,IP,密钥文件
#执行的话,就需要输入前面的序号即可登陆!

# cat /home/shell/proxy.sh 
#!/bin/bash
# used to login foreign servers
# carl 20150104 1st
# PATH

# define some variables
ServerArray=(
0,host1,user1,xxx.xxx.xxx.xxx,/home/ssh/host1.pem
1,host2,user2,xxx.xxx.xxx.xxx,/home/ssh/host2.pem
2,host3,uesr3,xxx.xxx.xxx.xxx,/home/ssh/host3.pem
)
Length=${#ServerArray[@]}

# function start, list server
function ListServer()
{
	echo "***** Choose the Server to login  ******"
	echo "****************************************"
	for Server in ${ServerArray[@]};
	do
	    echo $Server
	done
	echo "****************************************"
	echo "***** Input First num. Quit with q *****"
	read Choice
}
# end

# function start ,login server
function Login()
{
	ListServer
	if [[ $Choice == q ]]; then
		exit
	elif [[ $Choice -ge 0 && $Choice -lt $Length ]]; then
		#echo "${ServerArray[${Choice}]}"
		ServerName=`echo "${ServerArray[${Choice}]}"|cut -f2 -d ','`
		User=`echo "${ServerArray[${Choice}]}"|cut -f3 -d ','`
		ServerIP=`echo "${ServerArray[${Choice}]}"|cut -f4 -d ','`
		PemFile=`echo "${ServerArray[${Choice}]}"|cut -f5 -d ','`
	
		echo "Loging in ${ServerName}......"
		ssh -i ${PemFile} -o StrictHostKeyChecking=no ${User}@${ServerIP}	
	else
		echo "Input error, Check input!!!"
		ListServer
	fi
}
#end

Login

 
附录:
shell脚本实现代理登陆 二透过防火墙代理登陆”,主要讲如果被登陆服务器本身也是透过代理放出来的,即被登陆服务器本身也是处理防火墙内的,这时该如何实现。

发表评论

邮箱地址不会被公开。 必填项已用*标注