
Я установил nginx вместе с jenkins на машину с Ubuntu 21.
Настроил nginx для перенаправления трафика 80 на 8080, следуя инструкциям в этом руководстве.связь
Теперь можно перенаправить трафик с 80 на 8080. Итак, чтобы отключить прямой доступ к jenkins с 8080 извне. Изменил аргументы в /etc/default/jenkins, добавив строку --httpListenAddress=127.0.0.1
Теперь строка аргументов Дженкинса выглядит следующим образом.
JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --httpListenAddress=127.0.0.1"
Затем перезагрузил машину, но все еще смог получить прямой доступ через порт 8080.
Пожалуйста, предложите, как этого добиться.
azureuser@jenkins:~$ ss -lnpt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 4096 *:3000 *:*
LISTEN 0 50 *:8080 *:*
LISTEN 0 128 [::]:22 [::]:*
azureuser@jenkins:~$ ps auxw | grep jenkins
jenkins 6761 0.1 11.8 3036280 416756 ? Ssl Mar29 8:08 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080
azureus+ 86025 0.0 0.0 8548 2356 pts/0 S+ 19:09 0:00 grep --color=auto jenkins
решение1
/etc/default/jenkins
По какой-то причине в командной строке Jenkins не указана заданная опция .
Пожалуйста, проверьте еще раз, что JENKINS_ARGS
верный и включает опцию. Попробуйте также перезапустить Jenkins.
решение2
В соответствии сэтотответ, /etc/default/jenkins
файл больше не используется в последних версиях Jenkins. Вам нужно будет обновить службу Jenkins systemd, чтобы достичь своей цели:
- Открыть
/lib/systemd/system/jenkins.service
через текстовый редактор. - Найдите строку, содержащую переменную среды адреса прослушивания Jenkins:
#Environment="JENKINS_LISTEN_ADDRESS="
- Удалите комментарий и обновите значение переменной, указав локальный IP-адрес:
Environment="JENKINS_LISTEN_ADDRESS=127.0.0.1"
- Сохраните файл и перезагрузите файлы модулей systemd:
systemctl daemon-reload
- Перезапустите Дженкинс:
systemctl restart jenkins
Теперь Jenkins должен прослушивать localhost:
$ netstat -plunt | grep 8080
tcp6 0 0 127.0.0.1:8080 :::* LISTEN 11661/java