Primeiro, verifique quais endereços o servidor da Web está realmente ouvindo.
Executar sudo netstat -an | grep :80
:
$ netstat -an | grep :80
tcp6 0 0 :::80 :::* LISTEN
Aqui eu tenho um servidor web, escutando na porta 80, exclusivamente no IPv6. Um servidor que atende no IPv4 teria o tcp em vez do tcp6, e seria 0.0.0.0:80
e 0.0.0.0:*
, não :::80
e :::*
0.0.0.0 é um endereço mágico para cada interface IPv4 disponível, e :: é um endereço mágico para cada interface IPv6 disponível.
Em endereços ... você parece estar um pouco confuso com o endereço IPv6 que você tem: O IP 2a02: 2168: 858: 8001: 0: 0: 0: 5 é o seu endereço IPv6. Geralmente, o endereço IPv6 é global, ao contrário das redes IPv4, em que você normalmente emprega NAT para tráfego de saída, para mascarar seu endereço local. Mas, para usá-lo em um navegador, você precisa colocá-lo em [], então link deve funcionar, se o seu servidor estiver configurado para escutar no IPv6.
Para permitir o acesso externo ao IPv6, você provavelmente terá que permitir a porta 80 através do firewall em seu roteador de rede.
Em relação ao outro IP que você encontrou, 46.242.14.149, este provavelmente é o seu endereço IPv4 externo. Isso não pertence ao seu computador, mas ao seu roteador. Para poder acessar seu site por meio disso, você precisa configurar o encaminhamento de porta, do roteador para o computador. Leia o manual do seu roteador para saber como fazer isso.
Para mostrar qual IP a interface local realmente possui, o mais fácil é usar o comando ip address
. A saída será semelhante ao seguinte:
$ 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
Como podemos ver, tenho aqui uma NIC, enp2s0
, com um endereço IPv4 (inet) e um endereço IPv6 (inet6). Assim, o link deve funcionar neste caso - mas apenas na rede local.
Além disso, tenho um adaptador de loopback, lo
, com o IPv4 127.0.0.1 e o IPv6 de :: 1. De fato, todo computador, quase independente do sistema operacional, tem esse endereço de loopback. Sempre se refere ao computador local. Assim, o link ou o link sempre se conectará ao local webserver, através da interface de loopback.
Os trechos de código que você inclui em sua pergunta essencialmente tentam analisar a saída de ifconfig para mostrar seu endereço IP. Isso pode ser útil em alguns cenários, mas quando você está simplesmente verificando o que é manualmente, é perda de tempo.