Eu queria alterar uma configuração do apache em funcionamento de example.com (exampleIP = 1.2.3.4) para alterar da porta padrão 80 para a porta 8001, de forma que link deve funcionar. Eu não fui capaz de fazer isso e vou documentar o que tentei. Eu acho que talvez precise de ajuda no iptables.
meu / etc / hosts em primeiro lugar é bom
1.2.3.4 example.com
Comecei com a substituição da porta 80 por 8001 nos seguintes locais
-
/etc/apache2/ports.conf
Ouça 1.2.3.4:8001
-
/etc/apache2/conf.d/virtual.conf
NameVirtualHost 1.2.3.4:8001
-
/etc/apache2/sites-enabled/example.com
< VirtualHost 1.2.3.4:8001>
ServerName example.com:8001
#UPDATE: ServerName example.com doesn't make a difference either
< / VirtualHost >
Quando eu substituo o 8001 nos 3 casos acima com 80, ele funciona. com o 8001 não consigo estabelecer uma conexão. O tcpdump também não mostra solicitações recebidas.
Como o daemon do apache quando reiniciado não causou nenhum erro, tentei a confirmação se o servidor da Web estava escutando no 8001
$ sudo lsof -i |grep 8001
apache2 731 root 3u IPv4 46858730 TCP example.com:8001 (LISTEN)
apache2 734 www-data 3u IPv4 46858730 TCP example.com:8001 (LISTEN)
apache2 736 www-data 3u IPv4 46858730 TCP example.com:8001 (LISTEN)
apache2 737 www-data 3u IPv4 46858730 TCP example.com:8001 (LISTEN)
apache2 738 www-data 3u IPv4 46858730 TCP example.com:8001 (LISTEN)
apache2 739 www-data 3u IPv4 46858730 TCP example.com:8001 (LISTEN)
Parecia ouvir no 8001. Eu até tentei aplicar as seguintes regras de iptable no terminal:
$ sudo iptables -A INPUT -p tcp --dport 8001 -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 8001 -j ACCEPT
$ sudo iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
Eu nunca recebi um log negado. Aqui está o que o modo verboso do iptables mostra
$ sudo iptables -L -v -n
Chain INPUT (policy ACCEPT 3052M packets, 785G bytes)
pkts bytes target prot opt in out source destination
25 1690 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8001
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8001
92 6484 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/min burst 5 LOG flags 0 level 7 prefix 'iptables denied: '
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 4317M packets, 695G bytes)
pkts bytes target prot opt in out source destination
20 1760 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:8001
Não estou familiarizado com as regras de iptable, por isso, sugestões sobre quaisquer regras que eu tenha perdido acima serão ótimas. Lendo outros tópicos eu também queria saber se isso poderia ser um motivo.
$ cat /proc/sys/net/ipv4/conf/eth0/forwarding
0
Dada esta informação, alguma dica sobre o que poderia estar parando o servidor rodando no 8001 mas não no 80?
UPDATE 1:
Eu tentei liberar todas as regras de iptable
$ sudo iptables -X
$ sudo iptables -F
eu também tentei ver se o tcpdump estava pegando alguma coisa
sudo tcpdump -i eth0 port 8001 -v
Ele não faz isso no 8001, mas muda a porta para 80 (nos ^ 3 lugares novamente) e o faz.
eu tentei procurar o processo estabelecido e de escuta
$ netstat -an
tcp 0 1.2.3.4:8001 0.0.0.0:* LISTEN
Por último da minha máquina local, eu tentei enrolar também
curl http://1.2.3.4:8001 -v
* About to connect() to 1.2.3.4 port 8001 (#0)
* Trying 1.2.3.4... No route to host
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host
UPDATE 2
Além disso, meu / etc / log / messages que detecta erros do iptables pareceu lançar o seguinte. mas acontece que eles aparecem quando você entra e sai do tcpdump.
Jan 22 09:30:31 node1 kernel: device eth0 entered promiscuous mode
Jan 22 09:30:31 node1 kernel: audit(1264152631.798:54): dev=eth0 prom=256 old_prom=0 auid=4294967295
Jan 22 09:30:33 node1 kernel: device eth0 left promiscuous mode
ATUALIZAÇÃO 3
achei isso no tcpdump faq's
...This might be because the interface
on which you're capturing is plugged
into a switch; on a switched network,
unicast traffic between two ports will
not necessarily appear on other ports
- only broadcast and multicast traffic will be sent to all ports...
...which would indicate that if you
sniff on a 10Mb port, you will not see
traffic coming sent to a 100Mb port,
and vice versa...
...If your machine is not plugged into
a switched network or a dual-speed
hub, or it is plugged into a switched
network but the port is set up to have
all traffic replicated to it, the
problem might be that the network
interface on which you're capturing
doesn't support "promiscuous" mode, or
because your OS can't put the
interface into promiscuous mode...
para resumir este caso peculiar:
- iptables foram liberados com -F, -X
- solicita multa com o apache ouvindo em 1.2.3.4:80
- O tcpdump não detecta nada com o apache ouvindo em 1.2.3.4:8001 (consulte UPDATE 1,3)