$ service rh-mariadb103-mariadb start
$ mysql
$ mysqld
#开机加载命?br />cp /opt/rh/rh-mariadb103/enable /etc/profile.d/rh-mariadb103.sh
僅紀?TCP 連線狀態以及徏立或是斷開連線程Q關於進一步的 TCP 包協定可參?Reference 連線?/p>
通常?TCP 連線建立程與狀態,需要三ơ的a息交換來徏立連線 (three-way handshaking)Q?/p>
其中左邊通常?serverQ右邊則?clientQ文字流E描qͼ
該些名詞與狀態說明:
在徏立連線時,可能會發生雙方同步徏立連線的情?(Simultaneous open)Q常見於 P2P 的應用中Q其 TCP 建立連線的流E不太一樣:
畫成 TCP 狀態流E圖會是這樣Q?/p>
TCP 關閉程如下Q比建立連線還要複雜一些,需要經過四ơ的a息交換 (four-way handshaking)Q要注意的是可以是由 server Dvd關閉Q抑或是 client Dvd關閉Q?/p>
其中左邊通常?client 狀?(?client dDv關閉連線)Q右邊則?server 狀態,文字程描述Q?/p>
該些名詞與狀態說明:
有可能連線的雙方同時發起關閉,雖然率還蠻低的Q?/p>
這邊多一個狀態:
畫成 TCP 狀態流E圖會是這樣Q?/p>
查詢目前所有的連線狀?(Windows & Linux)Q?/p>
netstat -a
注意: ssh-copy-id key写到q程机器?~/ .ssh/authorized_key.文g?/p>W三? d?/span>q程机器不用输入密码
常见问题Q?/p>
上述是给eucalyptus用户赋予无密码登陆的权利
使用选项 -i Q当没有g递的时候或?nbsp;如果 ~/.ssh/identity.pub 文g不可讉KQ不存在Q? ssh-copy-id 显CZq的错误信息 Q?-i选项会优先用将ssh-add -L的内容)
ssh命o
1、复制SSH密钥到目标主机,开启无密码SSHd
ssh-copy-id user@host
如果q没有密钥,请用ssh-keygen命o生成?/p>
2、从某主机的80端口开启到本地L2001端口的隧?/span>
ssh -N -L2001:localhost:80 somemachine
现在你可以直接在览器中输入http://localhost:2001讉Kq个|站?/p>
3、将你的麦克风输出到q程计算机的扬声?/span>
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp
q样来自你麦克风端口的声韛_在SSH目标计算机的扬声器端口输出,但遗憄是,声音质量很差Q你会听到很多嘶嘶声?/p>
4、比较远E和本地文g
ssh user@host cat /path/to/remotefile | diff /path/to/localfile –
在比较本地文件和q程文g是否有差异时q个命o很管用?/p>
5、通过SSH挂蝲目录/文gpȝ
sshfs name@server:/path/to/folder /path/to/mount/point
?a rel="nofollow" style="box-sizing: border-box; outline: none; margin: 0px; padding: 0px; text-decoration-line: none; cursor: pointer; color: #6795b5; overflow-wrap: break-word;">http://fuse.sourceforge.net/sshfs.html下蝲sshfsQ它允许你跨|络安全挂蝲一个目录?/p>
6、通过中间L建立SSHq接
ssh -t reachable_host ssh unreachable_host
Unreachable_host表示从本地网l无法直接访问的LQ但可以从reachable_host所在网l访问,q个命o通过到reachable_host?#8220;隐藏”q接Q创v到unreachable_host的连接?/p>
7、将你的SSH公钥复制到远E主机,开启无密码d – 单的Ҏ
ssh-copy-id username@hostname
8、直接连接到只能通过LBq接的主机A
ssh -t hostA ssh hostB
当然Q你要能讉KLA才行?/p>
9、创建到目标L的持久化q接
ssh -MNf <user>@<host>
在后台创建到目标L的持久化q接Q将q个命o和你~/.ssh/config中的配置l合使用Q?/p>
Host host ControlPath ~/.ssh/master-%r@%h:%p ControlMaster no
所有到目标L的SSHq接都将使用持久化SSH套接字,如果你用SSH定期同步文gQ用rsync/sftp/cvs/svnQ,q个命o非常有用,因ؓ每次打开一个SSHq接时不会创建新的套接字?/p>
10、通过SSHq接屏幕
ssh -t remote_host screen –r
直接q接到远E屏q会话(节省了无用的父bashq程Q?/p>
11、端口检(敲门Q?/span>
knock <host> 3000 4000 5000 && ssh -p <port> user@host && knock <host> 5000 4000 3000
在一个端口上敲一下打开某个服务的端口(如SSHQ,再敲一下关闭该端口Q需要先安装knockdQ下面是一个配|文件示例?/p>
[options] logfile = /var/log/knockd.log [openSSH] sequence = 3000,4000,5000 seq_timeout = 5 command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 5000,4000,3000 seq_timeout = 5 command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT tcpflags = syn
12、删除文本文件中的一行内容,有用的修?/span>
ssh-keygen -R <the_offending_host>
在这U情况下Q最好用专业的工具?/p>
13、通过SSHq行复杂的远Eshell命o
ssh host -l user $(<cmd.txt)
更具UL性的版本Q?/p>
ssh host -l user “`cat cmd.txt`”
14、通过SSHMySQL数据库复制到新服务器
mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user@newhost “mysql -uUSER -pPASS NEW_DB_NAME”
通过压羃的SSH隧道Dump一个MySQL数据库,其作ؓ输入传递给mysql命oQ我认ؓq是q移数据库到新服务器最快最好的Ҏ?/p>
15、删除文本文件中的一行,修复“SSHL密钥更改”的警?/span>
sed -i 8d ~/.ssh/known_hosts
16、从一台没有SSH-COPY-ID命o的主机将你的SSH公钥复制到服务器
cat ~/.ssh/id_rsa.pub | ssh user@machine “mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys”
如果你用Mac OS X或其它没有ssh-copy-id命o?nix变种Q这个命令可以将你的公钥复制到远E主机,因此你照样可以实现无密码SSHd?/p>
17、实时SSH|络吞吐量测?/span>
yes | pv | ssh $host “cat > /dev/null”
通过SSHq接C机,昄实时的传输速度Q将所有传输数据指?dev/nullQ需要先安装pv?/p>
如果是DebianQ?/p>
apt-get install pv
如果是FedoraQ?/p>
yum install pv
Q可能需要启用额外的软g仓库Q?/p>
18、如果徏立一个可以重新连接的q程GNU screen
ssh -t user@some.domain.com /usr/bin/screen –xRR
ZL喜欢在一个文本终端中打开许多shellQ如果会话突然中断,或你按下?#8220;Ctrl-a d”Q远E主Z的shell不会受到丝毫影响Q你可以重新q接Q其它有用的screen命o?#8220;Ctrl-a c”Q打开新的shellQ和“Ctrl-a a”Q在shell之间来回切换Q,误问http://aperiodic.net/screen/quick_reference阅读更多关于screen命o的快速参考?/p>
19、lSCP大文?/span>
rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file
它可以恢复失败的rsync命oQ当你通过VPN传输大文Ӟ如备份的数据库时q个命o非常有用Q需要在两边的主Z安装rsync?/p>
rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file local -> remote
?/p>
rsync –partial –progress –rsh=ssh $user@$host:$remote_file $destination_file remote -> local
20、通过SSH W/ WIRESHARK分析量
ssh root@server.com ‘tshark -f “port !22″ -w -' | wireshark -k -i –
使用tshark捕捉q程L上的|络通信Q通过SSHq接发送原始pcap数据Qƈ在wireshark中显C,按下Ctrl+C停止捕捉,但也会关闭wiresharkH口Q可以传递一?#8220;-c #”参数ltsharkQ让它只捕捉“#”指定的数据包cdQ或通过命名道重定向数据,而不是直接通过SSH传输lwiresharkQ我你过滤数据包Q以节约带宽Qtshark可以使用tcpdump替代Q?/p>
ssh root@example.com tcpdump -w – ‘port !22′ | wireshark -k -i –
21、保持SSH会话怹打开
autossh -M50000 -t server.example.com ‘screen -raAd mysession’
打开一个SSH会话后,让其保持怹打开Q对于用笔记本电脑的用P如果需要在Wi-Fi热点之间切换Q可以保证切换后不会丢失q接?/p>
22、更E_Q更快,更强的SSH客户?/span>
ssh -4 -C -c blowfish-cbc
强制使用IPv4Q压~数据流Q用Blowfish加密?/p>
23、用cstream控制带宽
tar -cj /backup | cstream -t 777k | ssh host ‘tar -xj -C /backup’
使用bzip压羃文g夹,然后?77k bit/s速率向远E主Z输。Cstreamq有更多的功能,误问http://www.cons.org/cracauer/cstream.html#usage了解详情Q例如:
echo w00t, i’m 733+ | cstream -b1 -t2
24、一步将SSH公钥传输到另一台机?/span>
ssh-keygen; ssh-copy-id user@host; ssh user@host
q个命ol合允许你无密码SSHdQ注意,如果在本地机器的~/.ssh目录下已l有一个SSH密钥对,ssh-keygen命o生成的新密钥可能会覆盖它们,ssh-copy-id密钥复制到q程LQƈq加到远E̎L~/.ssh/authorized_keys文g中,使用SSHq接Ӟ如果你没有用密钥口令,调用ssh user@host后不久就会显CEshell?/p>
25、将标准输入QstdinQ复制到你的X11~冲?/span>
ssh user@host cat /path/to/some/file | xclip
你是否用scp文件复制到工作用电脑上Q以便复制其内容到电子邮件中Qxclip可以帮到你,它可以将标准输入复制到X11~冲区,你需要做的就是点击鼠标中键粘贴缓冲区中的内容?/p>
如果你还有其它SSH命o技巧,Ƣ迎在本文评Z帖出?/p>
原文Q?a rel="nofollow" style="box-sizing: border-box; outline: none; margin: 0px; padding: 0px; text-decoration-line: none; cursor: pointer; color: #6795b5; overflow-wrap: break-word;">http://blog.urfix.com/25-ssh-commands-tricks/