如何从我的家庭networking外部访问我的SSH Linux服务器

所以我一直在search互联网几天,试图找出这一点,不能弄明白。

我知道它会是一个容易的。

所以我最近拿了一个旧的桌面,并加载了Ubuntu的服务器12.04。 我的这个项目的目标是创build一个区域来托pipe几个git仓库,也许是一个简单的网页。

我已经安装了SSH和Apache2软件包,并试图configuration它们。 现在,我可以使用ssh greg@0.0.0.0.0从我的笔记本电脑login,但只能在同一networking上login。 一旦我离开房子,我得到一个超时错误。

所以我现在想要得到两件事情。

  1. 如何configurationSSH以允许我从networking外部访问服务器。
  2. 在服务器上获取我的主机名,以便login名是greg @ hostname而不是greg@0.0.0

    (我已经做了sudo主机名,并改变了etc / hostname文件,没有结果)

多谢你们。

您家庭网络外部的超时发生是因为您指定的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,但速度很慢。