Я только что установил Jenkins с его конфигурациями по умолчанию на физическом компьютере Centos 7.
Порт 8080 открыт на межсетевом экране:
sudo iptables -L -n
[...]
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
[...]
Также похоже, что Дженкинс на самом деле прослушивает все интерфейсы:
sudo netstat -an | grep "LISTEN "
[...]
tcp6 0 0 :::8080 :::* LISTEN
[...]
Я могу curl localhost:8080
локально (из коробки Centos) без проблем, но из любой точки сети я получаю Connection refused
.
Я что-то упускаю?
@panos: он работал после установки JENKINS_JAVA_OPTIONS = "$ JENKINS_JAVA_OPTIONS -Djava.net.preferIPv4Stack = true" в / etc / sysconfig / jenkins, а затем sudo systemctl restart jenkins. также я удалил записи ipv6 в / etc / hosts, не уверен, нужно ли редактировать файл, позже я проверил "netstat -tulpen", можно увидеть, что java прослушивает tcp ..
Вышеупомянутое похоже на то, что Jenkins по умолчанию использует только ipv6.
Попробуйте следующее, возможно, это решит вашу проблему:
бегать: $ /sbin/sysctl net.ipv6.bindv6only
Вероятно, вы получите результат со значением net.ipv6.bindv6only = 1
.
В этом случае вам необходимо отключить настройку:
sudo /sbin/sysctl net.ipv6.bindv6only=0
После команды выше вы получите ответ типа net.ipv6.bindv6only = 0
, перезапустите Jenkins: sudo systemctl restart jenkins
и попробуйте снова подключиться к Jenkins.
Если это сработало для вас, вы должны поместить это в конфигурационный файл sysctl. Потому что это не постоянное исправление. После перезагрузки параметр, который вы только что изменили, будет по умолчанию равен 1 очередной раз.
Проверьте /etc/sysctl.conf
и /etc/sysctl.d/*
и добавить net.ipv6.bindv6only = 0
чтобы сделать этот параметр постоянным и запустить sudo sysctl -p
или перезапустите после его изменения.