大前提,windows可以使用freesshd做ssh服務(wù)器當(dāng)一級代理醉途,但是它的端口轉(zhuǎn)發(fā)功能有bug毡熏,所以還是用linux的ssh吧。
ps:Earthworm雖然簡單好用倦蚪,但是傳輸?shù)牧髁渴遣患用艿南<幔呀?jīng)碰到過好幾次反彈回來仍然被安全設(shè)備攔截的情況,所以還是老老實實用ssh代理了
ssh自動重?fù)?/h2>
安裝sshpass陵且,需要gcc編譯安裝裁僧。
#!/bin/bash
while [ '' == '' ]
do
ssh_d_process_num=`ps aux|grep -E 'ssh \-' |grep -v grep |wc -l`
ssh_d_port=`netstat -antulp|grep '9701'|wc -l`
#echo 'ssh_d_process_num:'$ssh_d_process_num
if [ "$ssh_d_process_num" == "0" -o "$ssh_d_port" == "0" ]; then
# echo 'ssh -d terminaled'
sshpass -p "password" ssh -fnCNT -R 0.0.0.0:9702:127.0.0.1:22 root@192.168.99.7 -p 9701 &
#else
# echo 'ssh -d running'
fi
sleep 300
done
ssh保持在線
ssh會話會在空閑一段時間后自動僵死,但是要注意進(jìn)程和連接仍在慕购。雖然客戶端也可以設(shè)置心跳檢測聊疲,但在服務(wù)端設(shè)置更方便。
修改/etc/ssh/sshd_config
ClientAliveInterval 30#意思是每個30秒發(fā)送一次心跳請求
ClientAliveCountMax 6#超過6次心跳失敗則自動終止連接
ssh
- 需要 root 權(quán)限沪悲,不然會提示權(quán)限錯誤:
Privileged ports can only be forwarded by root
- 不能使用 VPS (sshd server) 已占用的
22
端口获洲,用作端口轉(zhuǎn)發(fā)。選用 未使用 端口殿如,比如2222
否則就杯具了:Warning: remote port forwarding failed for listen port 22
本地轉(zhuǎn)發(fā)
p參數(shù)表示ssh的端口
ssh命令
ssh -fCN -L 127.0.0.1:1234:192.168.99.125:3389 root@192.168.99.199 -p 53
plink.exe命令
plink.exe -v -C -N -L 127.0.0.1:8888:127.0.0.1:3389 test@117.28.112.73 -P 9398 -pw password
直接訪問本機開啟監(jiān)聽的1234端口贡珊,其實等于通過遠(yuǎn)程主機192.168.99.199來訪問遠(yuǎn)程主機192.168.99.125上的3389端口
-n 將 stdio 重定向到 /dev/null,與 -f 配合使用
-T 不分配 TTY 只做代理用
-q 安靜模式握截,不輸出 錯誤/警告 信息
-f 后臺連接
-N 連接后不取得shell
-C 啟動壓縮飞崖,加快速度
(如不理解參數(shù)可以去掉他們看效果)
-L 1234為建立隧道后本地監(jiān)聽的端口,192.168.99.125是隧道出口轉(zhuǎn)發(fā)到的目標(biāo)地址(即xp靶機)谨胞,3389是目標(biāo)端口仓坞,root@192.168.99.199是建立隧道的另一方渠牲,即rolling版登錄的賬號和ip杆麸,-p 53是rolling版的監(jiān)聽端口超升。
遠(yuǎn)程轉(zhuǎn)發(fā)
ssh -fCN -R 0.0.0.0:9999:192.168.1.1:80 root@test.com
0.0.0.0表示vps上監(jiān)聽所有地址。
直接訪問遠(yuǎn)程主機上開啟監(jiān)聽的9999端口就相當(dāng)于通過本機來訪問192.168.1.1上的80端口芦岂。
其中有個大坑。
bind_address 參數(shù)默認(rèn)值為空,等價于
*:port:host:hostport
并不意味著任何機器忘朝,都可以通過 VPS 來訪問 內(nèi)網(wǎng) 機器。建立連接后判帮,只能在 VPS ( sshd server ) 本地 訪問 「內(nèi)網(wǎng)」 機器局嘁。要在辦公網(wǎng)的筆記本上通過 VPS 映射的端口來訪問 內(nèi)網(wǎng) 機器,需要修改vps上的/etc/ssh/sshd_config文件晦墙,啟用 VPS sshd 的 GatewayPorts
參數(shù)悦昵,set to yes
or clientspecified
,允許任意請求地址晌畅,通過轉(zhuǎn)發(fā)的端口訪問內(nèi)網(wǎng)機器但指。
動態(tài)映射
-D socks代理,不多解釋了抗楔。
-g 監(jiān)聽所有地址棋凳,允許其他主機連接。