无法登录我的本地服务器

无法登录我的本地服务器

我现在正在尝试安装 LAMP。

手册上说,如果我安装了 Apache,我就可以继续http://local_server_IP。并且给出了 2 个命令来获取它:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

当我运行它时,它说我没有这样的设备eth0,我发现我的以太网接口被命名enp4s0并运行:

ip addr show enp4s0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

但它什么也没返回。第二条命令是:

curl http://icanhazip.com

它工作并返回2a02:2168:858:8001:0:0:0:5,这不是正确的值,我无法运行服务器

http://2a02:2168:858:8001:0:0:0:5

然后我认为我需要 IPv4,因此我使用站点找到了我的 IPv4 - 46.242.14.149,我检查了这个:

http://46.242.14.149

它“加载”了很长时间,找不到页面。所以如果你能告诉我我的错误,我会非常高兴,谢谢你的时间 :)

更新:
如此奇怪的事情——现在curl http://icanhazip.com又回来了46.242.14.75

ip address输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 44:8a:5b:f0:42:e2 brd ff:ff:ff:ff:ff:ff
3: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 40:e2:30:0d:ea:31 brd ff:ff:ff:ff:ff:ff
    inet 10.234.179.135/19 brd 10.234.191.255 scope global dynamic wlp5s0
       valid_lft 859sec preferred_lft 859sec
    inet6 fe80::54e6:9989:422c:98f6/64 scope link 
       valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:d1:61:64:6e brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 52:54:00:93:96:3a brd ff:ff:ff:ff:ff:ff

答案1

首先,验证网络服务器实际监听的地址。运行sudo netstat -an | grep :80

$ netstat -an | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN     

这里我有一个 Web 服务器,监听端口 80,只在 IPv6 上监听。监听 IPv4 的服务器将使用 tcp 而不是 tcp6,并且它将是0.0.0.0:800.0.0.0:*,而不是:::80:::*

0.0.0.0 是每个可用 IPv4 接口的魔术地址,而 :: 是每个可用 IPv6 接口的魔术地址。

关于地址……你似乎对你拥有的 IPv6 地址有点困惑:IP 2a02:2168:858:8001:0:0:0:5 是你的 IPv6 地址。通常 IPv6 地址是全局的,与 IPv4 网络不同,在 IPv4 网络中,你通常使用 NAT 来处理传出流量,以掩盖你的本地地址。但是,要在浏览器中使用它,你需要将其括在 [] 中,因此http://[2a02:2168:858:8001:0:0:0:5] 应该如果您的网络服务器设置为监听 IPv6,那么就可以工作。

要允许外部 IPv6 访问,您可能必须允许端口 80 通过网络路由器中的防火墙。

至于您找到的另一个 IP,46.242.14.149,这可能是您的外部 IPv4 地址。它不属于您的计算机,而是属于您的路由器。要通过它访问您的网站,您需要设置从路由器到计算机的端口转发。请阅读路由器手册以了解如何执行此操作。

要显示本地接口实际具有哪个 IP,最简单的方法是使用命令ip address。输出将类似于以下内容:

$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether bc:ae:c5:09:5f:15 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.55/24 brd 10.0.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet6 2001:4661:7f30:0:beae:c5ff:fe09:5f15/64 scope global mngtmpaddr dynamic 
       valid_lft 86400sec preferred_lft 14400sec
    inet6 fe80::beae:c5ff:fe09:5f15/64 scope link 
       valid_lft forever preferred_lft forever

我们可以看到,我这里有一个 NIC,enp2s0它既有 IPv4 (inet) 地址,又有 IPv6 (inet6) 地址。因此,http://10.0.1.55在这种情况下应该可以工作 - 但仅限于本地网络上。

此外,我有一个环回适配器,lo其 IPv4 地址为 127.0.0.1,IPv6 地址为 ::1。事实上,几乎无论使用哪种操作系统,每台计算机都有此环回地址。它始终指向本地计算机。因此http://127.0.0.1或者http://[::1]将始终通过环回接口连接到本地网络服务器。

您在问题中包含的代码片段本质上是尝试解析 ifconfig 的输出以显示您的 IP 地址。这在某些情况下很有用,但当您只是手动检查它是什么时,这是浪费时间。

相关内容