A resposta não respondida de Tom H é melhor, mas se você não gostar, aqui está uma resposta direta:
Desculpe, minhas habilidades no iptables são melhores quando eu consigo consertar, testar, verificar, registrar, repetir ... e eu não tenho o seu sistema para brincar, mas aqui está o meu conselho de qualquer maneira. Você provavelmente precisará depurar usando os logs.
Altere a direção do seu redirecionamento, conforme declarado por Jens Bradler:
echo "1" > /proc/sys/net/ipv4/ip_forward
Prove que está certo
cat /proc/sys/net/ipv4/ip_forward
Saída do gato:
1
Adicione uma regra para ACCEPT usando a tabela FORWARD também.
sudo iptables -A FORWARD -i wlan0 -p tcp --dport 8000 -j ACCEPT
Remova o material "-m state" da regra de entrada (opcional ... desnecessário, eu acho):
sudo iptables -A INPUT -i wlan0 -p tcp --dport 8000 -j ACCEPT
Provavelmente em qualquer lugar que você tenha adicionado "ESTABLISHED", você também deve ter "RELATED" (não tenho certeza, mas acho que um pacote de retorno que inicia uma conexão está relacionado, mas não estabelecido).
sudo iptables -A OUTPUT -o wlan0 -p tcp --sport 8000 -m state --state RELATED,ESTABLISHED -j ACCEPT
A regra FORWARD para ir com o acima aceita, reverso do outro FORWARD.
sudo iptables -A FORWARD -o wlan0 -p tcp -s 127.0.0.1 --sport 8000 -m estado - estado RELACIONADO, ESTABELECIDO -j ACEITAR
Em vez de usar wireshark, use -j LOG.
Primeiro, verifique se ainda não existem regras de LOG (as configurações padrão são melhores que as seguintes ... mas você usou o flush; o meu enviará spam para seu servidor):
sudo iptables --list --line-numbers -v
sudo iptables -t nat --list --line-numbers -v
Se não, adicione-os:
sudo iptables -A INPUT -j LOG
sudo iptables -A OUTPUT -j LOG
sudo iptables -A FORWARD -j LOG
sudo iptables -t nat -A PREROUTING -j LOG
Assista os registros
tail -F /var/log/firewall
# or if that file doesn't exist:
tail -F /var/log/messages