У меня есть домашний сервер рабочий Kubuntu 14.04. Это служит веб-странице внешнему миру и предоставляет доступ в Интернет всем устройствам на моей домашней LAN. У меня есть устройство Ардуино с приложением веб-сервера для создания отчетов о температуре. Я хочу использовать свой телефон на базе Android для соединения с веб-страницей Ардуино.
Я использую UFW для конфигурирования моего брандмауэра и хочу передать запросы к своему домашнему порту использования сервера 225 к веб-странице Ардуино, настроенной для слушания порта 225.
Я могу достигнуть Ардуино отовсюду на моей домашней LAN, но не с внешней стороны. Я исследовал и попробовал много вещей, но неудачно. Сайты как "проверка, Ваши порты" сообщают, что порт 225 закрывается.
Любая справка значительно ценится!
Попробуйте это
Проверьте сначала с cat /proc/sys/net/ipv4/ip_forward
ответ 0
или 1
. Если 0
команда выполнения
sudo echo 1 >/proc/sys/net/ipv4/ip_forward
Это включит IP передачу
Затем отредактируйте и добавьте перед разделом фильтра в /etc/ufw/before.rules
(вершина файла):
sudo nano etc/ufw/before.rules
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 225 -j DNAT --to-destination ip_address_of_Arduino
COMMIT
Затем перезапуск ufw
.
Проблемой является место правила.
Ваш *nat
таблица находится в начале и не может показать снова в конце файла. Переместите свое правило от line 82
belowe PREROUTING
Должен быть похожим на это
*nat
:PREROUTING ACCEPT [0:0]
# Port fw
-A PREROUTING -i eth0 -p tcp --dport 225 -j DNAT --to-destination ip_address_of_Arduino
:POSTROUTING ACCEPT [0:0]
# Forward traffic from eth1 through eth0.
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT
После этой таблицы запуска *filter
и остальная часть ufw
конфигурация.