Я только что установил 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) без проблем, но из любого другого места в сети я получаю В соединении отказано
.
Я что-то упустил?
Похоже, что 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
или перезапустить после его изменения.
@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 ..