내가 사용 Centos 6.5
하고 Jenkins 1.547
. Jenkins의 Wiki에 설명 된대로 Jenkins를 설치했습니다 .
로컬 포트에서 수신하도록 Jenkins를 구성했습니다 8081
.
netstat -tulpn
Jenkins는 더 많은 포트에서 추가로 수신 대기 함을 나타냅니다 ( PID 981 은 Jenkins 프로세스 실행 중임).
$ netstat -tulpn | grep 981
tcp 0 0 :::41613 :::* LISTEN 981/java
tcp 0 0 ::ffff:127.0.0.1:8081 :::* LISTEN 981/java
tcp 0 0 :::43586 :::* LISTEN 981/java
udp 0 0 :::33848 :::* 981/java
udp 0 0 :::5353 :::* 981/java
추가 포트의 목적이 궁금합니다. 또한 이러한 포트는 외부에서 접근 할 수 있습니다. 즉, 외부 nmap
스캔은 이러한 포트가 열려 있음을 보여줍니다.
로컬 포트 8081에서만 수신하도록 Jenkins를 구성하려면 어떻게해야합니까?
답변
Jenkin의 버그 추적기에 공개되지 않은 문제가 있습니다. 여기에는 원하지 않는 모든 포트를 닫기 위해 따라야 할 단계가 요약되어 있습니다 .
- Jenkins 웹 인터페이스의 대시 보드 → Jenkins 관리 → 시스템 구성 → SSH 서버 에서 사용 안함을 선택하십시오 .
- Jenkins 웹 인터페이스의 대시 보드 → Jenkins 관리 → JNLP 슬레이브 에이전트의 글로벌 보안 구성 → TCP 포트 에서 사용 안함을 선택하십시오 .
- 젠킨스를 통해 시작한다고 가정
/etc/init.d/jenkins
하여 AS 권한이없는 사용자 것은 , 다음 구성 파일을 편집/etc/sysconfig/jenkins
찾은JENKINS_JAVA_OPTIONS
및 추가-Dhudson.DNSMultiCast.disabled=true -Dhudson.udp=1023
(이것은 현재 읽고 가정 … 예를JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
, 다음에 변경JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.DNSMultiCast.disabled=true -Dhudson.udp=1023"
)