По крайней мере, показанные команды выглядят правильно. Если это не полная конфигурация брандмауэра, которую вы используете в Raspberry Pi, т.е. если у вас есть другие правила или вы изменили политику переадресации по умолчанию (по умолчанию это ПРИНЯТЬ, изменено с помощью iptables -P), вам, вероятно, также необходимо включить ответить на трафик, добавив соответствие состояния:
iptables -I FORWARD 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Это позволит трекеру соединения обнаруживать ответные пакеты как принадлежащие тому же соединению, исходящему из внутреннего интерфейса, и принимать их.
Я не могу точно вспомнить, если ядро Raspberry Pi не включило сопоставление контратак, вместо этого вы должны использовать (старое, устаревшее) расширение состояния:
iptables -I FORWARD 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
Вы должны ввести только один из них. Я предпочитаю добавить это как первое правило в цепочке.
Интерфейс eth0 на Raspberry Pi и ваш компьютер за ним должны иметь адреса из другой сети. Например, вы можете использовать 192.168.10.1/24 (или /255.255.255.0, что тоже самое) на RasPi и 192.168.10.2 на целевом хосте.
На целевом хосте вы устанавливаете адрес eth0 RasPi (192.168.10.1 в предыдущем примере) в качестве шлюза по умолчанию, а DNS-серверы - так же, как установлено на вашем RasPi. Вы можете проверить, какие серверы использует RasPi, выполнив на нем команду: cat /etc/resolv.conf и посмотреть записи 'nameserver'. Или вы можете просто настроить общедоступный DNS Google (8.8.8.8, 8.8.4.4).