「Xshell」Xshell跳板机通过隧道连接远程服务器
小菜运维仅仅只是一位菜鸟运维
废话不多说,小菜运维最近又完成了一套外包项目开发,现在准备将项目部署到甲方购买的阿里云服务器上。因为甲方是集团型大企业,又有自己的运维团队,很多规章制度比较规范,部署的时候要求通过跳板机/堡垒机登录阿里云内网ECS。虽然说跳板机很有必要也应该这样做,但奈何愿意这样做的客户是少之又少,这次是撞上大客户啦!
小菜运维平时都是使用的Xshell、Xftp管理服务器,这次通过跳板机登录内网ECS时不断输入密码,还不能直连内网ECS上传文件,操作了几次小菜运维就忍不住要口吐芬芳了,终于决定用Xshell的隧道来彻底解决一下这个效率低下、重复体力劳动的问题了!
Xshell的隧道转发类型共有三种,这里我们不展开介绍各自的应用场景,大家可以自行了解,我们这里选用的是Dynamic,可以实现自动连接内网ECS,也可直接连接FTP,但是前提是必须先连接跳板机建立起隧道,然后再连接内网ECS
隧道类型:
Local(Outgoing)
Dynamic(SOCKS4/5)
Remote(Incoming)
1 连接跳板机
11 建立到跳板机的会话
Xshell选择新建会话,点击左侧 连接 ,在 常规 栏依次填入会话名称、跳板机IP、跳板机端口,然后依次完成 用户身份验证 、 登录脚本 设置,这里需要强调的一点是,务必记得设置 登录脚本 以保证隧道的长连接,避免因隧道的断开而导致后续其他远程目标机器的连接失败,具体操作如下图:
12 建立跳板机隧道
在上一步的对话框中,继续点击左侧 隧道 - 添加 ,在弹出的转移规则对话框中完成规则设置,这里要强调的是 源主机 是指你当前建立隧道连接的本地机器,一般填入 localhost 或 127001 即可,而 目标主机 则是指你要远程连接的远程服务器,具体配置信息如下图:
2 建立远程主机连接
21 建立到远程主机的会话
Xshell选择新建会话,点击左侧 连接 ,在 常规 栏依次填入会话名称、本机/本地IP、本机/本地监听端口,然后依次完成 用户身份验证 设置,这里需要强调的一点是,务必记得这里设置的连接主机地址 12 中设置转移规则时填写的 源主机 地址,而不是远程服务器的IP地址,同样的,这里设置的端口号也是 12 中设置转移规则时填写的 侦听端口 ,但是 用户身份验证 需要填写远程服务器的用户信息。具体操作如下图:
3 SSH/SFTP到远程服务器
自动连接远程服务器的前提是先连接到跳板机/堡垒机,然后再连接到远程服务器。
在Xshell中双击已建好的到堡垒机的会话,待成功完成登录后,再双击已建好的到远程服务器的会话,这时我们可以看到Xshell自动实现了登录远程服务器操作,这时在Xshell已登录的远程服务器页面,点击顶部工具栏的 新建文件传输 按钮,Xshell将自动打开Xftp并自动登录远程服务器的Xftp文件管理页面;
1 连接跳板机
11 建立到跳板机的会话
这里和 Local(Outgoing)方式 的步骤完全相同,可参照之前步骤操作。
12 建立跳板机隧道
这里和 Local(Outgoing)方式 的区别在于转移规则的配置,具体配置信息如下图:
2 建立远程主机连接
21 建立到远程主机的会话
这里和 Local(Outgoing)方式 的区别在于主机和端口号的配置,这里的主机和端口号都是配置的远程服务器的, 用户身份验证 同样还是需要填写远程服务器的用户信息。具体操作如下图:
22 建立到远程主机会话的代理
在上一步 21 建立到远程主机的会话 的对话框左侧,点击 代理 ,然后浏览并添加代理服务器,这里我们代理服务器设置的就是本地机器,要注意的是这里 代理服务器的监听端口必须和12中隧道转移规则设置的侦听端口保持一致 ,具体配置如下图:
3 SSH/SFTP到远程服务器
这里和 Local(Outgoing)方式 的步骤完全相同,可参照之前步骤操作。
基于隧道可以简化很多体力操作,感觉起来就好像堡垒机不存在一样,实际操作中推荐使用 Dynamic(SOCKS4/5)方式 ,因为Dynamic(SOCKS4/5)方式对于跳板机后有多台远程服务器需要连接的场景只需要配置一次隧道和代理,之后就可以直接添加到远程服务器的会话就可以了;而 Local(Outgoing)方式 则需要为每一台远程服务器添加一个单独的隧道才可以。
如果按照以上步骤操作仍然不能正常访问,那么……建议你联系你的堡垒机管理员,可能是堡垒机帐号/凭据/权限等的设置没有给足你权限。
附-参考文档:
阿里云·堡垒机
阿里云·透明代理
上一篇写了 Xshell 5 的安装和激活,本文介绍安装之后
如何连接 linux 系统和上传、下载文件。
连接 Linux 服务器
打开 XShell 5 ,点击加号,然后输入服务器的 ip 地址。
点连接,接着输入连接服务器的用户名和密码。
最后点解接受和保存密匙就连接成功了
上传和下载文件
首先需要在服务器中安装一个软件lrzsz 如果服务器的操作系统是 CentOS,则输入命令yum install lrzsz; 如果服务器的操作系统是 Ubuntu ,则输入命令sudo apt-get install lrzsz。 安装过程中肯能会提示要输入y,则按提示输入即可。
安装完成后,输入rz会弹出框,选择要上传的文件后点确定就可以了。
要下载文件的话就输入sz即可。
我觉得你这个思路不好,按照你的想法,每增加一条,就需要运行一个往xxxx服务器上发送一次的sh,如果Alog同时写入100,200,300,1000条你想过是什么概念吗?除了浪费了系统资源,还占用了连接带宽。所以实时更新我觉得这个思路不好。我建议按天比如24小时,上传一次alog。
同时启动关闭多个tomcat可以参考如下示例#!/bin/ksh
log=/var/log/tomcat_web/tomcatrun-logthome=/usr/local/tomcat
ip="192168135"
port="8085"
cluster="192168135:8080|tomcat1 192168135:8085|tomcat2"
for server in $cluster
do
echo "$server"|while IFS="|" read f1 f2
do
host="$f1"
servicename="$f2"
result=`/usr/bin/wget -S --spider --tries=3 --timeout=3 http://$host/blank/wordjsp 2>&1 | grep HTTP/11|awk '{print $2}'`
if [ "$result" = "200" ]
then
echo "Tomcat $host $servicename Running OK"
else
sleep 5
result=`/usr/bin/wget -S --spider --tries=5 --timeout=3 http://$host/blank/wordjsp 2>&1 | grep HTTP/11|awk '{print $2}'`
if [ "$result" = "200" ]
then
echo "Tomcat $host $servicename Running OK"
else
echo "Tomcat $host $servicename is not runnng : `date +%Y/%m/%d-%H:%M:%S`"
service $servicename start
echo "Tomcat $host $servicename restart finish"
fi
fi
done
done
回答行业问题
[root@api~]#是大叔云端Linux服务器的名称既然有了公网IP那么要远程控制服务器就简单多了,首先要保证的就是安全问题,毕竟已经公网IP是暴露在互联网当中的,很容被图谋不轨的人盯上。
我的大概思路是这样,将公网IP配置到路由器里,将需要访问端口开放,在内网部署一台跳板机并设置低权限,这样即使受到攻击,也增加了一道防护。
下面将针对纯Linux系统服务器和Linuxwindos混合服务器的跳板机做下简单说明,我自己喜欢使用Linux系统做为服务器,为啥,习惯了,喜欢shell脚本的可以
ssh $IP_102 -l $User "sh 102sh"&
ssh $IP_103 -l $User "sh 103sh"&
这样执行就可以同时执行了,否则是一个一个执行的。
如果判断是否执行完成就写一个log日志,看好读日志就可以了。
shell连接不同的数据库会有不同的连接命令,像连oracle用sqlplus命令, mysql 用mysql命令,sybase用isql命令
如连接oracle:sqlplus 用户名/密码@ip地址[:端口]/service_name [as sysdba]
mysql命令 应该是mysql -u用户名 -p用户密码 -hIP
Access不清楚,access能安装在unix上吗应该只能在windows上才能用吧
0条评论