Para fazer com que o dhcp atribua de forma confiável um determinado IP estático ao computador que você deseja, o mais comum é verificar como informar ao seu servidor dhcp (o que estiver sendo executado) para mapear estaticamente um endereço mac para um Endereço de IP. Isso fará com que sempre entregue o mesmo IP (que você especificar) para esse endereço mac.
O ISC dhcp precisa de uma stanza de configuração como
host mycomputer {
hardware ethernet 00:12:34:56:78:9A;
fixed-address 192.168.1.10;
}
dnsmasq precisa de uma linha como:
dhcp-host=00:12:34:56:78:9A,192.168.1.10
cujos detalhes estão especificados na página de manual .
onde:
- mycomputer é o nome do host do seu computador
- 00: 12: 34: 56: 78: 9A é o endereço MAC do seu computador
- 192.168.1.10 é o IP que você quer que seja sempre atribuído a esse endereço mac
Uma vez feito isso, você agora tem um IP 'estático' para fazer o encaminhamento de sua porta. Para fazer isso, você quer, como o @Avery Payne diz, fazer:
iptables -t nat -I PREROUTING -s ! {internal-network} -d {public-address} -p tcp --dport {port-on-public-address} -j DNAT --to-dest {internal-address}
onde:
- internal-network é o endereço IP que representa sua rede, ou seja, 192.168.1.0
- endereço interno é o endereço IP que representa o host que você deseja expor, por exemplo, 192.168.1.10
- endereço público é o endereço IP da interface que está voltada para o seu provedor de serviços de Internet
- porta-em-endereço público é o número da porta em que o tráfego chegaria se o computador interno pudesse vê-lo; note que esta regra não altera o número da porta à medida que ela avança, simplesmente passa o pacote ao longo
Observe o espaço entre o -s, o ponto de exclamação e {internal-network}, certifique-se de ter um espaço em ambos os lados.