我正在学校里设置一个 Debian 网络服务器,人们需要能够在学校外访问它(即网站需要能够从本地网络之外访问)。问题是,他们没有打开端口 80(或者实际上除了 1723 之外的任何端口),而且他们不允许打开它,因为学校董事会不允许这样做。
我的问题是:有没有办法不用端口转发来实现这一点?我知道端口 1723 用于 PPTP,有什么办法可以使用它来实现这一点吗?
我知道我可以将服务器放在学校外面,然后从任何地方进行远程访问,但是使用学校 WiFi 的学生只能获得很少的互联网访问权限,因为它通常被学校的设备使用,但如果他们可以在使用学校 WiFi 时在本地访问服务器,那么就不会出现这个问题。
答案1
如果您在其他地方有另一台服务器,则可以使用 ssh 隧道跨越 nat 和防火墙:
+--------------------------------------------+ ||| +----------------------------------+
| Server at school | ||| | Server outside network |
| 10.2.3.100 | ||| | 1.2.3.4 |
| HTTPD on 80 |--SSH through fw--> | HTTPD 80 proxy -> localhost:81 |
| ssh -R 81:localhost:80 [email protected] | ||| | sshd |
| dns mywebsite.com -> 1.2.3.100 | ||| | dns mywebsite.com -> 1.2.3.4 |
+--------------------------------------------+ ||| +----------------------------------+
^ ^
| |
+--------------------------------------------+ +----------------------------------+
| Client at school looks up mywebsite.com | | Client outside school looks up |
| and connects directly to the server | | mywebsite.com and gets 1.2.3.4 |
+--------------------------------------------+ | which is either served from |
| proxy or forwarded over ssh |
+----------------------------------+