Да. Забудьте о выскочке полностью. Вы используете upstart для запуска runit, что, в свою очередь, является тем, что контролирует службы gitlab. Upstart является совершенно ненужной частью этого в подсистеме Windows для Linux.
Получить runit сам в подсистеме Windows для Linux. (Возможно, вам придется настроить его, поскольку он знает проблемы с пакетом даже на Ubuntu Linux.) Затем просто используйте его напрямую, чтобы управлять своими службами gitlab.
Средство настройки брандмауэра по умолчанию для Ubuntu - ufw. Разработанный для упрощения конфигурации брандмауэра iptables, ufw обеспечивает удобный способ создания межсетевого экрана на основе IPv4 или IPv6.
ufw по умолчанию изначально отключен. На странице man ufw:
«ufw не предназначен для обеспечения полной функциональности брандмауэра через свой командный интерфейс, но вместо этого предоставляет простой способ добавления или удаления простых правил. В настоящее время он в основном используется для брандмауэров на базе хоста. «Средство настройки брандмауэра по умолчанию для Ubuntu - ufw. Разработанный для упрощения конфигурации брандмауэра iptables, ufw обеспечивает удобный способ создания межсетевого экрана на основе IPv4 или IPv6.
ufw по умолчанию изначально отключен. С man-страницы ufw:
«ufw не предназначен для обеспечения полной функциональности брандмауэра через свой командный интерфейс, но вместо этого предоставляет простой способ добавления или удаления простых правил. В настоящее время он в основном используется для брандмауэров на базе хоста. "
Я предполагаю, что ваш сервер (который также является вашим клиентом в этом случае) находится за маршрутизатором NAT из Интернета. Если это так, брандмауэр в Linux не нужен строго . (Там будет оловянная фольга, которая говорит, что все нуждается в хорошо настроенном брандмауэре.)
Выведенный вывод показывает, что нет действующих правил, поэтому по умолчанию все пропускается. Таким образом, проблема, вероятно, существует в другом месте. Начните с запуска своей серверной программы, а затем запустите
lsof | grep IP
и ищите имя своей программы или порт 10000. Если вы не найдете его в списке, то вашей программе не удалось привяжите сокет к порту. В этом случае вам нужно сделать больше ошибок в вашем коде на C. Если вы видите свою программу, загляните в программу под названием wireshark. Запуск прокрутки при запуске клиента позволит вам проверить, правильно ли отправляет ваш пакет пакеты. Фильтр, такой как (tcp.port == 10000)
, должен давать по меньшей мере половину разговора, в зависимости от того, как работает ваш сервер.