我公司有一個內網Web伺服器,只能從LAN訪問,作為整合伺服器用於Web開發。 LAN 中的使用者將其 /etc/hosts 設定為使用整合伺服器的 Apache 配置中定義的相同虛擬主機,因此能夠使用標準連接埠 80 連接到它。
我有時遠端工作,可以使用自訂連接埠透過 SSH 存取伺服器。
如果我將 /etc/hosts 設定為該伺服器的公共 IP,有什麼方法可以使用該自訂連接埠的 SSH 連接,以便我的瀏覽器連接透過隧道從該 Web 伺服器取得頁面?
答案1
我不太明白你的配置,但是當你 ssh 到公司伺服器時,你應該能夠設定 ssh 隧道,以便你可以使用瀏覽器存取公司網路伺服器。
你做不是需要在本機上設定 /etc/hosts。使用 ssh 參數
-L port:host:hostport
所有到本機主機連接埠的流量都透過隧道傳輸到遠端主機/主機連接埠。所以,當你這樣做時
ssh -L 80:web-server:80 user@ssh-server -p 22
http://localhost
將被重定向到web-server:80
.請注意,主機連接埠是在遠端伺服器(即 ssh 伺服器)上轉換的。
-p 22
如果 ssh 伺服器使用預設端口,則不需要,但問題確實表明 SSH 伺服器通過自訂端口。在這種情況下,請變更22
自訂連接埠。
如果系統抱怨特權連接埠只能由 root 轉送,以超級使用者身分運作:
sudo ssh -L 80:web-server:80 user@ssh-server -p 12345
或以 root 身分登入。
答案2
SSH 命令列版本:
ssh -L 90:devserver:80 remotehost.example.com
現在瀏覽到http://devserver:90/
請記住 /etc/hosts 必須指向 127.0.0.1
使用 PuTTY,在 SSH 隧道下:
- 在來源連接埠中輸入 90
- 在目標中輸入 devserver:80
- 點擊新增
- 請記住返回會話並點擊“儲存”。
比所有隧道更好的方法是在辦公室設定 OpenVPN。
答案3
我的做法恰恰相反。當我在客戶那裡時,我透過筆記型電腦上的隧道建立了一個安全的 ssh 隧道,指向安裝了 ssh 伺服器的外部伺服器。然後我在 google chrome 中設定 switchy,以啟用從瀏覽器轉送到透過 ssh 路由的外部伺服器的流量。
所以,
- 在 Chrome 瀏覽器中安裝 switchy(您可以在 ff/ie 中設定代理程式 - switchy 可讓您輕鬆在代理程式配置之間切換)。將 SOCKS 主機設定為 127.0.0.1,連接埠設定為 1080。
- 在您的遠端電腦上設定 Tunnelier 用戶端,即。您的筆記型電腦/家用電腦並將其連接到公司 ssh 伺服器。使用連接埠 1080 並啟用“SOCKS / HTTP 代理轉送”。
希望這可以幫助。