ssh隧道技術
啥叫正向連接?就是client連上server,然后把server能訪問的機器地址和端口(當然也包括server自己)鏡像到client的端口上。
ssh -L [客戶端IP或省略]:[客戶端端口]:[服務器側能訪問的IP]:[服務器側能訪問的IP的端口] [登陸服務器的用戶名@服務器IP] -p [服務器ssh服務端口(默認22)]
其中,客戶端IP可以省略,省略的話就是127.0.0.1了,也就是說只能在客戶端本地訪問。服務器IP都可以用域名來代替。 舉例說明: 你的IP是192.168.1.2,你可以ssh到某臺服務器8.8.8.8,8.8.8.8可以訪問8.8.4.4,你內網里還有一臺機器可以訪問你。 如果你想讓內網里的另外一臺電腦訪問8.8.4.4的80端口的http服務,那么可以執行:
ssh -L 192.168.1.2:8080:8.8.4.4:80 test@8.8.8.8
也就是說,ssh到8.8.8.8上,然后讓8.8.8.8把8.8.4.4的80端口映射到本地的8080端口上,而且和本地192.168.1.2這個IP綁定。 內網里的另外一臺機器可以通過IE瀏覽器中輸入http://192.168.1.2:8080查看8.8.4.4的網頁。 當然,如果是其他服務,比如ftp、ssh、遠程桌面也是可以的。不過,V**貌似是不行的,可能是因為GRE協議無法通過。
啥叫反向連接?就是client連上server,然后把client能訪問的機器地址和端口(也包括client自己)鏡像到server的端口上。 反向連接用得可能更多一些。比如你的客戶端在內網,在外網是無法直接訪問到的,這時用反向連接打通一條隧道,就可以從外網通過這條隧道進來了。 命令:
ssh -R [服務器IP或省略]:[服務器端口]:[客戶端側能訪問的IP]:[客戶端側能訪問的IP的端口] [登陸服務器的用戶名@服務器IP] -p [服務器ssh服務端口(默認22)]
其中,服務器IP如果省略,則默認為127.0.0.1,只有服務器自身可以訪問。指定服務器外網ip的話,任何人都可以通過[服務器IP:端口]來訪問服務。當然,這個時候服務器本機也要輸入外網IP:端口來訪問。 舉例說明: 你的IP是192.168.1.2,你可以ssh到外網某臺服務器8.8.8.8,你內網里有一臺機器192.168.1.3。 如果你想讓外網所有的能訪問8.8.8.8的IP都能訪問192.168.1.3的http服務,那么可以執行:
ssh -R 8.8.8.8:8080:192.168.1.3:80 test@8.8.8.8
也就是說,ssh到8.8.8.8上,然后把本地局域網內192.168.1.3的80端口映射到8.8.8.8的8080端口上,這樣外網任何一臺可以訪問8.8.8.8的機器都可以通過8080端口訪問到內網192.168.1.3機器的80端口了。 反向連接同樣支持各種服務。
假設你內網里某臺機器可以上網,但是你不能上網,如果你有ssh到那臺機器的權限,那么就可以利用ssh方式建立一個代理socks5,通過代理來上網。 命令:
ssh -D [本地IP或省略]:[本地端口] [登陸服務器的用戶名@服務器IP] -p [服務器ssh服務端口(默認22)]
道理和上面是一樣的,執行這個命令之后,本地會監聽指定的端口等待連接。 網上好多文章說Firefox和Chrome要下載什么插件才能支持,其實都是扯淡。 在配置代理的時候直接選擇Sock5就可以了,不需要用戶名和密碼驗證。另外,IE也是支持Sock5的,具體配置方法是:勾選為LAN使用代理服務器,然后任何字段都不要填,點“高級”按鈕,在套接字里面填好相應的配置,其他都留空。 Chrome默認采用IE的配置,所以如果IE配置好了,Chrome也是可以上網的。 另外,可以使用一個叫做Sockscap的軟件,把應用扔進去就能以代理的方式上網了。(部分需要調用多個進程的應用可能不行) 說句題外話,QQ2012版目前的Socks5代理上網功能貌似不支持本地Socks5代理,不過可以選擇“瀏覽器配置”方式來規避。
把socks代理轉換成http代理 如果你想把socks代理轉換成http代理,可以用privoxy這個東東。去官網下載個.zip的文件包,然后解壓到任意目錄,執行可執行文件。 在主界面點擊Options菜單->Edit Main Configuration,在彈出的文本文件中搜索forward-socks5,找到的章節就是講socks5轉換的。 回車新建一行,輸入forward-socks5 / [本地IP]:[本地端口] . 注意后面還有個“.”,然后保存。 這樣就可以實現把socks5代理轉換成127.0.0.1:8118的http代理了。程序可以通過127.0.0.1:8118這個http代理上網。 如果你想讓局域網內其他IP也能通過你的機器上網,需要修改配置文件中的listen-address部分,搜索一下相信你就會看明白了。
不要以為只有Linux下才能用ssh,Windows下一樣有強大的ssh命令行工具和ssh服務器。并且對以上功能支持的都很好。 那就是偉大的PuTTY!去官方網站下載吧! ssh命令行客戶端對應的是plink.exe,命令稍微有一點不同(比如指定端口是大寫的P),具體看幫助文件稍作修改就好了。 ssh服務器端是WinSSHD,傻瓜式安裝,默認配置支持windows用戶認證。
如果你想讓連接長期保持,可以寫個腳本來保證因為網絡原因斷線的話可以自動重連。 先說Windows平臺,用plink -pw參數可以指定密碼,所以只要寫個批處理:
:1plink -pw “password” -D 7070 user@serveripgoto 1
這樣應該就可以解決大多數問題造成的斷線。 Linux平臺ssh默認不支持把密碼作為參數,不過有sshpass可以搞定
sshpass -p 密碼 ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -l root -R 10002:127.0.0.1:12580 -N 66.160.159.139 -p 56789
然后寫腳本autossh.sh,內容如下
#!/bin/bashwhile [ '' == '' ]dossh_d_process_num=`ps aux|grep -E 'ssh -' |grep -v grep |wc -l`if [ "$ssh_d_process_num" == "0" ]; then/home/user/sshpass -p "password" ssh -D 7070 user@ServerIP &fisleep 300done
接觸Linux恐怕對SSH再熟悉不過了,還有scp,sftp各種方便的功能,一般的使用都需要ip:port(如果不是默認22的話),但有些情況比較特殊,就是想連接一臺內網主機(比如公司內網,當然你肯定做不了Port Forwarding,除非你想在公司防火墻上拆個洞)。稍懂一點網絡的童鞋會明白,Internet上去主動連接一臺內網是不可能的,一般的解決方案分兩種,一種是端口映射(Port Forwarding),將內網主機的某個端口Open出防火墻,相當于兩個外網主機通信;另一種是內網主機主動連接到外網主機,又被稱作反向連接(Reverse Connection),這樣NAT路由/防火墻就會在內網主機和外網主機之間建立映射,自然可以相互通信了。但是,這種映射是NAT路由自動維持的,不會持續下去,如果連接斷開或者網絡不穩定都會導致通信失敗,這時內網主機需要再次主動連接到外網主機,建立連接。
1.理論的介紹完了,下面實際操作:
公司里的機器 A 是內網機器,我們不能在公司外直接訪問機器 A。但如果,在 A 和某臺公網機器 C 之間建立一條加密隧道,便可以用任何一臺機器 SSH 登錄 A,就如同在 A 機器所處內網的防火墻上鑿穿了一個洞。用下面的圖來表達這個想法更直觀一些。
A 192.168.1.100 SSH 12580 C 66.160.123.11 SSH 56789
A C 機已經有相同的key
A <-|-> C <--- B |內 防 公 任網 火 網 何機 墻 機 機器 器 器
在A機上執行
ssh -g -N -f -R 10001:localhost:12580 root@66.160.123.11 -p 56789
在C機上執行 執行會看到監聽的端口
[root@localhost ~]# netstat -ntplActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 127.0.0.1:10001 0.0.0.0:* LISTEN 22158/sshd
修改sshd_config選項 GatewayPorts yes 重啟ssh 在A機重新連接后監聽的端口是0.0.0.0:10001
這樣做 ssh斷線了 就需要在A機再次執行最終修改為
autossh -M 2222 -f -NR 10001:localhost:12580 root@66.160.123.11 -p 56789
-M 2222 負責通過2222端口監視連接狀態,連接有問題時就會自動重連
代理A機上的web網站也是一樣的方法
autossh -M 2222 -f -NR 88:localhost:80 root@66.160.123.11 -p 56789將A機80端口映射到C機上的88端口(A機上已經運行了網站www.test.com)在C機上配置web反向代理server{ listen 80; server_name www.test.com; location / { proxy_pass http://127.0.0.1:88; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } access_log /data/logs/test.com.log access;}
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
李天佑為什么不在快手直播了?李天佑是誰?你在做什么?劉德華和mc天佑誰紅一點,劉德華連微博都不玩,是不是和時代脫軌,而天佑則是網絡達人?不玩微博只是個人喜好?;艚ㄈA和鄭爽不玩了?,F在有太多的鍵盤播放器。不玩是件好事。在劉德華面前,司儀天佑只是個菜鳥。他怎么能和劉天王競爭呢...
什么是熱更新?熱更新是什么意思?如果您經常玩游戲,您應該會看到,當您打開游戲客戶端時,系統會提示您有更新,您需要下載更新包。對于手機游戲來說,可能從幾米到幾百米不等。對于電腦游戲,如lol,它的范圍也從幾十米到幾百兆字節。這樣,您只需要下載客戶端本身的更新包,而不需要再次下載整個客戶端的更新方法稱為熱更新。蘋果對應用程序和游戲的內容有嚴格的控制。每個應用程序或游戲在上架前都會經過審核。也就是說,蘋...
手機話費怎么充q幣?方法::先打開電腦瀏覽器,在搜索欄直接搜索看看“騰訊充值話費中心”。然后輸入你要充值的帳號與密碼,登錄賬號。然后點擊你手機運營商.這樣的手機話費就能充q幣安卓手機q幣怎么充便宜?1.第一種方法是申請開通財付通,用財付通沖QB每月都有前200QB可以享不享受93折的優惠,遠遠超過200QB的可愜意的享受95折優惠。還不忘一提用銀行卡沖QB也能享不享受95折優惠。2.第二種方法是沖...