❶ 如何在iterm2中设置自动远程登录
当然,OS X上的终端可以使用iterm2,这样配置后便利性不比$99的secureCRT差
首先介绍下不通过跳板机进行登录的方式,准备:
1. 写一个expect脚本
#!/usr/bin/expect
set timeout 30
spawn ssh [lindex $argv 0]@[lindex $argv 1]
expect {
"(yes/no)?"
{send "yes\n";exp_continue}
"password:"
{send "[lindex $argv 2]\n"}
}
interact
该脚本比较简单,需要三个参数,第一个参数是远程用户名,第二个参数是远程地址,第三个参数是密码
2. 将expect脚本到$PATH下(例如/usr/local/bin)
3. 在iterm2中设置登录命令为1中的脚本,用command+o的方式呼出profiles,点击Edit Profiles
上面是已配置的远程登录机列表,双击可以自动登录
如上图配好后,即可自动登录
下面再说下有跳板机的情况
俺公司的跳板机策略如下,不同公司的环境不一样,也许某些同学可以进行参考
1.跳板机上不能存放任何文件,/tmp下可以方临时文件,每天会定时清掉
2.文件方向只能是local->跳板机->remote的方向,即local可以push/pull跳板机上的文件,跳板机可以push/pull远程上的文件
3.向跳板机登录前需要通过邮件/短信的方式获取passcode,这是除密码之外的额外的验证方式
其实跳板机的自动远程登录与非跳板机的差异在expect脚本的编写上,其他的照搬即可,那这里就直接把代码贴出来就行了
#!/usr/bin/expect
# 参数1:远程host;参数2:远程password
if { $argc != 2 } {
send_user "Usage: host password\n"
exit
}
set host [lindex $argv 0]
set pw [lindex $argv 1]
set TERMSERV yourjumpserver # 跳板机服务器
set USER jumpserveruser # 用户名
set PASSWORD jumperserverpasswd # 跳板机密码
set fd [open /place/to/passcode r] # 本地存放passcode的地方
gets $fd pc
close $fd
# Start the session
catch {spawn ssh -l $USER $TERMSERV} # 登录跳板机
# Login
expect "*assword:*" { send "$PASSWORD\r" }
expect "*passcode:*" { send "$pc\r" }
#通过跳板机登录线上机器
expect "*hostname*" { send "ssh -l $USER $host\r" } # hostname为你跳板机的名字
expect {
"(yes/no)?"
{send "yes\n";exp_continue}
"*assword:*"
{send "$pw\n"}
}
expect "*$host*" { send "cd ~\r"; interact }
❷ 怎样把多台电脑连接在一个服务器上
首先需要一个hub或路由器或交换机,服务器需要两张网卡.以下成为网卡1与网卡2
线路连接:
1),网络主线(一般是从猫上下来的那根网线)连接服务器网卡1
2),用网线连接网卡2与hub.
3),hub其他口连接其他机器的网卡
网络设置(这里介绍一种具体的方法)
1),主机ip设置为192.168.1.1
2),其他机器ip设置为192.168.1.5-192.168.1.254
3),其他机器的网关\nds服务器设置为192.168.1.1
最后运行一下网络连接向导,可以根据提示很简单的完成.注意其中有一步是填写工作域,所有机器必须相同,否则在局域网上不能互相看到.
❸ mac用iterm2实现ssh,怎么像SecureCRT一样键P和账号密码
Mac下配置iterm2记住多站点ssh帐号密码
首先,需要自己安装一下iterm2,
打开iterm2官网后,点击Download下载并且安装。
安装完毕后,第一步,打开终端,连接你需要添加的vps服务器,命令格式如下:
ssh root@ip // ssh 用户名@网址或者ip
第一次连接会有一个安全提示,输入yes回车,然后control + c取消(输入密码那一步),如下图:
上面这一步主要是因为在iTerm2里面如果第一次连接没有保存key到电脑的话你输入yes也不行,只能先通过终端保存一次。
接着继续在终端配置需要管理的vps的ssh信息,输入下面的命令
vim expect ~/.ssh/myvps1 //myvps1可以修改为你自己想要的名字
接着会进入VI编辑界面,英文状态下输入i,然后粘贴下面这一段话后编辑对应的内容。
#!/usr/bin/expect -f
set user <用户名>
set host <ip地址>
set password <密码>
set timeout -1
spawn ssh $user@$host
expect "*assword:*"
send "$password\r"
interact
expect eof
编辑掉里面对应的地方后,按ESC键,然后英文状态下输入:wq
然后你就会新建一个名字为myvps1的文件。
如果你有多个服务器需要添加,请输入下面的命令
cp myvps1 myvps2
vim myvps2
i
编辑对应的内容
ESC
:wq
这样你就又新建了一个myvps2的文件。
接下来对iTerm2进行设置。
在顶部菜单栏里面点击iTerm2-preferences(快捷键是Command+,)
接着选择Profiles,点击左下角的+号新建一个配置,右边红框标注出来的地方,Name处填写一个用于区分的名字,Command处输入expect ~/.ssh/myvps1
如果你要添加多个服务器的配置,只需要修改Command命令的文件名字就行了。
以后打开iTerm2后,直接在菜单栏点击Profiles就可以看到你添加的VPS配置,直接点击需要连接的VPS名字,就可以打开对应的VPS进行ssh连接了,并且不需要密码。
❹ 怎么把2台服务器连接在一起使用
可以用周一个IP的不同端口啊.
比如阁下公网IP是111.222.121.232,可以将80端口映射到内网旧的服务器(比如是192.168.1.1),将8080端口(这随便写的,端口有65536个,一般高端口是没有人用的.)新的服务器(比如是192.168.1.10).这样,在公网访问网页时自动转到192.168.1.1这台服务器上,(网页服务默认端口是80的,所以访问默认的网页就不会打端口了.)如果111.222.121.232:8080,就访问到192.168.1.10这台新服务器上了.
阁下明白了吗?
http://111.222.121.232:80 ------->192.168.1.1
http://111.222.121.232:8080------>192.168.1.10
❺ 一个固定IP,两台服务器,服务器之间怎么通信且外网要都能远程这两台服务器
我说一种最简单的方法:
1、路由上映射80以及远程端口给Web服务器的80和远程端口。
2、路由上映射其他端口(如4489)给数据库服务器的远程端口。
这样就解决了2台服务器都需要远程登陆的问题了。
3、这2个机器,默认应该是走的内网路由方式连接,你就用内网IP把他们连接起来。
❻ 如何通过一个公网固定IP访问内网2台以上的服务器
如图中所示,R1和R2模拟成两台服务器并且提供相同的服务(地址分别为172.16.1.1 ,172.16.1.2),R3是交换机,R4是边界路由器也就是内部服务器的网关所在路由器(内网口地址为172.16.1.254 ),R5充当公网并且有环回口5.5.5.5,在R4上的E0/0(地址为222.222.222.1) 接口开启PAT,使得内网服务器可以访问外网R5的 5.5.5.5
如图:
这时就进入关键性阶段了,1:写一条ACL来匹配公网路由,access-list 2 permit 222.222.222.1
2:定义一个以内部服务器为地址的池:ip nat pool ccna 172.16.1.1 172.16.1.2 netmask 255.255.255.0 type rotary (最后这两个一定要有意思就是让这些地址轮循)
3:将ACL跟地址池关连起来:ip nat inside destination (注意这个不是source) list 2 pool ccna
最后就是在R1,R2的line vty 0 4 下打no login 允许外网的登陆。
这时可以检验结果了,,在R5上telnet 222.222.222.1 可以发现第一次时进入R1,第二次就进入R2了,
这 样就达到了两个服务器的负载均衡了。。当然这种情况是在多个服务器提供相同的服务的前提下才好用。
但是对于内部有多台服务器要同时开放一个相同的端口但是又只有一个公网IP时该怎么办呢?
图中标出了拓扑的详细结构,服务器地址分别为172.16.1.2 和172.16.1.3 ,网关为172.16.1.1 ,然后同样的跟上边一个实验一样,在边界路由器做基于接口的PAT转换,使得服务器可以访问公网,然后我们就开始在边界路由器上配置端口跟ip地址的映射,通常情况下我们都认为映射是这样写: ip nat inside source static tcp 172.16.1.2 80 222.222.222.1 80 然后会发现下一台服务器没法再做相同端口的映射了,,因此我们就必需改变上面的命令来使得另一台服务器也可以基于80端口的映射:这进命令就可以改成:ip nat inside source static tcp 172.16.1.2 80 222.222.222.1 100 与
ip nat inside source static tcp 172.16.1.3 80 222.222.222.1 101 这样的两条映射。。那么这样写的映射是否真的可行呢?那就让我们一起来检验下成果,首先必需在两台服务器上面的HTTP上面写上一些内容以做为区分。。
最后就是在最右边的PC上边打开WEB页面,输入地址:222.222.222.1:100 就会看到这个现象,,
说明我们己经可以访问内部的一台服务器了。
然后再输入:222.222.222.1:101 可以看到有
仔细看地址下面的字母两次登陆时结果是不一样的。。。这就说明我们可以利用这一个公网IP来映射多个内网的服务器了。。
❼ mac下 iTerm2使用技巧
首先要比windwos下的shell terminal好看,这样你才有动力,配色可以是Solarized或者是别的什么,然后半透明,贴着屏幕上边沿,然后设置一个快捷键呼出、隐藏。
最后,Windows 下的secureCRT和xshell支持rz和sz,虽然Linux下的scp会比rz和sz方便快捷,但是可能并不是直连服务器,要经过堡垒机,因此scp就不适用了,此时需要通过rz和sz以输入输出的方式进行文件传输。
需要先安装lrzsz,推荐用homebrew,可以直接brew install lrzsz
然后将iterm2-recv-zmodem.sh 和 iterm2-send-zmodem.sh脚本保存到 /usr/local/bin/
#!/bin/bash
# iterm2-recv-zmodem.sh
FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script ("echo "&(quoted form of POSIX path of thefile as Unicode text)&"")"`
if [[ $FILE = "" ]]; then
echo Cancelled.
# Send ZModem cancel
echo -e \x18\x18\x18\x18\x18
echo # Cancelled transfer
echo
else
echo $FILE
cd "$FILE"
/usr/local/bin/rz
echo # Received $FILE
echo
fi
#!/bin/bash
# iterm2-send-zmodem.sh
FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script ("echo "&(quoted form of POSIX path of thefile as Unicode text)&"")"`
if [[ $FILE = "" ]]; then
echo Cancelled.
# Send ZModem cancel
echo -e \x18\x18\x18\x18\x18
echo # Cancelled transfer
echo
else
echo $FILE
/usr/local/bin/sz "$FILE"
echo # Received $FILE
echo
fi
最后打开iTerm的Preferences,或者使用 command + , ,点进Profiles项,Advanced项,进入Tirggers,点击Edit,添加两条规则:
Regular expression: rz waiting to receive.**B0100
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-send-zmodem.sh
Regular expression: **B00000000000000
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
至此,iterm2已经基本顺手了,当然可能有同学说secureCRT和xshell可以保存连接信息、开代理,保存连接信息可以通过配置ssh config的alias来实现,但是大多数情况下有堡垒机的存在,所以就不常用了,而开socks代理可以通过ssh -N -f -D实现。
常用快捷键
⌘ + Click :可以打开文件,文件夹和链接
⌘ + n :新建窗口
⌘ + t :新建标签页
⌘ + w :关闭当前页
⌘ + 数字 & ⌘ + 方向键 :切换标签页
⌥⌘ + 数字 :切换窗口
⌘ + enter :切换全屏
⌘ + d :左右分屏
⇧⌘ + d :上下分屏
⌘ + ; :自动补全历史记录
⇧⌘ + h :自动补全剪贴板历史
⌥⌘ + e :查找所有来定位某个标签页
⌘ + r & ⌃ + l :清屏
⌘ + / :显示光标位置
⌥⌘ + b :历史回放
⌘ + f :查找,然后用 tab 和 ⇧ + tab 可以向右和向左补全,补全之后的内容会被自动复制, 还可以用 ⌥ + enter 将查找结果输入终端
选中即复制,鼠标中键粘贴
通用的Linux shell快捷键
⌃ + u :清空当前行
⌃ + a :移动到行首
⌃ + e :移动到行尾
⌃ + f :向前移动
⌃ + b :向后移动
⌃ + p :上一条命令
⌃ + n :下一条命令
⌃ + r :搜索历史命令
⌃ + y :召回最近用命令删除的文字
⌃ + h :删除光标之前的字符
⌃ + d :删除光标所指的字符
⌃ + w :删除光标之前的单词
⌃ + k :删除从光标到行尾的内容
⌃ + t :交换光标和之前的字符
❽ 怎么管理多台服务器上的文件呢
有两种方法,一种是直接下载iis7远程桌面管理工具,把三台服务器都连上再映射本地硬盘就可以了。
第二种方法:
首先,要服务器开启远程桌面连接:
计算机---属性---远程设置---勾选“允许运行任意版本远程桌面的计算机连接(较不安全)”
接下来是调整超过2个连接数的的设置方法:需要安装终端服务器(未测试)
第一步.在开始->运行命令栏中输入 gpedit.msc
在组策略中依次打开“计算机配置→策略→管理模板→Windows 组件→远程桌面服务→远程桌面会话主机→连接”中,选择“限制连接数量”进行配置。
第二步.在角色里增加远程桌面服务。
右击我的电脑,选择管理,在服务器管理→角色中添加远程桌面角色,一直下一步,然后重启服务器。