所以我几天来一直在网上搜索,试图解决这个问题并且无法理解。
我知道这将是一个简单的。
所以我最近拿了一个旧桌面并加载了ubuntu服务器12.04。我在这个项目中的目标是创建一个区域来托管一些git存储库,也许是一个简单的网页。
我已经安装了SSH和Apache2软件包,并尝试配置它们。现在我可以使用ssh greg@0.0.0.0.0从我的笔记本电脑登录,但仅限于我在同一网络上。一旦我离开家,我就会收到超时错误。
我现在想要了解的两件事情。
在服务器上获取我的主机名,所以登录将是greg @ hostname而不是greg@0.0.0
(我已经完成了sudo主机名并更改了etc / hostname文件而没有结果)
谢谢你们。
答案 0 :(得分:10)
您的家庭网络外部发生超时是因为您指定的IP将在外部网络上的其他位置路由。
正如其他人所说,您需要在路由器(外部接口)上配置到SSH服务器的端口转发。您可以使用标准端口(22)或任何替代端口(1024以上)。对于Web服务器,您需要设置从外部接口上的端口80到服务器的端口转发,如果要包含SSL / TLS连接,可以设置端口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,但它很慢。