如何将服务器限制为仅来自本地主机的连接?

Zur*_*ser 3 server security 18.04

有时您只想在您的服务器上建立服务器-客户端关系,即。仅有的localhost

但似乎一旦你打开一个端口来监听,它也可以在互联网上使用。因此,如果您避免使用具有 root 权限的服务器密码,则该服务器似乎对互联网上的每个人都开放。

如何将服务器限制为localhost仅来自内部网络的连接,或者换句话说,具有内部网络的连接,即使机器可以访问互联网,您也只能在内部网络中进行通信?

小智 5

您可以将应用程序配置为仅侦听地址 127.0.0.1 (localhost),这样它就不会被视为从外部打开。

例如,如果我有一个 nginx 在每个 ip 上监听端口 80,并且有一个 apache 在端口 8080 上监听 127.0.0.1 :

# netstat  -ltnp (Redacted a little to make it clearer)
Local Address           State       Program name
0.0.0.0:80              LISTEN      nginx: master
127.0.0.1:8080          LISTEN      apache
Run Code Online (Sandbox Code Playgroud)

如果您从外部检查这 2 个端口(例如使用 nmap),您只会看到 80 打开,而 8080 关闭:

# nmap $server -p 80,8080

PORT     STATE  SERVICE
80/tcp   open   http
8080/tcp closed http-proxy
Run Code Online (Sandbox Code Playgroud)

如果您尝试连接到 8080:

# telnet $server 8080
Trying $ip...
telnet: Unable to connect to remote host: Connection refused
Run Code Online (Sandbox Code Playgroud)

但 80 可以工作:

# telnet $server 80
Trying $ip...
Connected to .
Escape character is '^]'.
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你 !