2013-09-22 191 views
22

因此,我一直在網上搜索互聯網幾天,試圖弄清楚這一點,並找不到它。如何從我的家庭網絡外部訪問我的SSH Linux服務器

我知道它會很容易。

所以我最近拿了一箇舊桌面,並加載了Ubuntu的服務器12.04。我的這個項目的目標是創建一個區域來容納幾個git倉庫,也許是一個簡單的網頁。

我已經安裝了SSH和Apache2軟件包,並試圖配置它們。現在我可以使用ssh [email protected]從我的筆記本電腦登錄,但只能在同一網絡上登錄。一旦我離開房子,我會遇到超時錯誤。

所以我現在想要得到2件事情。

  1. 如何配置SSH以允許我從外部網絡訪問服務器。
  2. 獲取服務器上我的主機名,以便登錄將被格雷格@主機名代替[email protected]

    (我已經做了sudo的主機名和更改等/主機文件,並沒有結果)

謝謝你們。

+0

您需要通過路由器打開端口22和80(儘管我建議您將用於SSH的端口更改爲非標準端口)。如果您爲其設置DNS條目,從外部訪問將更容易。這兩件事都是SO的主題。嘗試在這裏詢問[su] – 2013-09-22 01:05:47

+0

offtopic,但確保您的服務器計算機具有可訪問的端口(可能被路由器/防火牆/等阻止),然後使用您的服務器的外部IP地址 –

+0

對不起,我把它轉發給超級用戶。感謝您的反饋 – Greg

回答

7

由於您指定的IP將在外部網絡的其他位置路由,您的家庭網絡外部出現超時。

正如其他人所指出的,您需要在路由器(外部接口)上配置端口轉發到SSH服務器。您可以使用標準端口(22)或任何其他端口(大於1024的東西)。對於Web服務器,如果要包含SSL/TLS連接,則需要將外部接口上端口80的端口轉發設置爲您的服務器,也可能需要端口443。

我還建議使用SSH配置文件(〜/ .ssh/config)使其更容易進行內部或外部連接。添加如下內容:

Host serverext 
Hostname 1.2.3.4 
User greg 
Port 22 

Host serverint 
Hostname 192.168.1.10 
User greg 
Port 22 

將serverext配置的主機名更改爲Internet連接的IP地址。如果您使用非標準端口進行外部SSH連接,請將端口字段更改爲與其匹配的serverext。

將serverint配置的主機名更改爲您的網絡上該服務器的內部IP地址。

一旦配置了這個功能,結合端口轉發功能,您可以在家中時使用「ssh serverint」連接到服務器,當您在某個地方時可以使用「ssh serverext」連接到服務器其他。

可以通過SSH配置文件包括高級配置選項,例如端口隧道和websocket連接。在過去,我做過類似的事情,並通過SOCKS代理服務器重定向SSH連接。我甚至通過Tor運行,但速度很慢。

+0

嗨Ben,我陷入了這樣一種情況,路由器後面有一臺計算機,我沒有任何配置路由器的權利,但我有一個DDNS,我有一臺服務器在我的控制下。那麼我怎樣才能從外部訪問我的電腦在本地網絡?非常感謝! – Gizak

+0

如果不訪問路由器,則無法配置到該網絡上的任何系統的端口轉發。出於某種原因,這些東西通常被稱爲網關。 – Ben

相關問題