bind: cannot assign requested address 에러 해결법

bind cannot assign requested address 오류 해결법 배너

bind: cannot assign requested address 에러는 프로그램이 특정 IP 주소나 포트에 바인딩하려 할 때 발생하는 문제로, IP 주소가 잘못 설정되었거나 포트가 이미 다른 프로세스에 의해 사용 중일 때 발생합니다.

이 에러는 제가 ESP 시스템이랑 MTA 서버를 설치하고 바로 난 에러가 아니라 서버를 재시작하고 난 에러였습니다. 이 설명은 문제 ip주소는 세컨드 아이피, 서버는 리눅스 우분투 서버라는 전제하에 설명하겠습니다.

이 글에서는 이 오류를 해결하는 방법을 단계별로 설명하겠습니다.

1. 에러 원인

bind: cannot assign requested address 에러의 주된 원인은 다음과 같습니다.

bind cannot assign requested address 에러의 주된 원인을 이미지로 알기 쉽게 보여주고 있다.
  • 잘못된 IP 설정: 프로그램이 지정한 IP 주소가 서버의 네트워크 인터페이스에 설정되지 않았거나, 네트워크 인터페이스가 비활성화된 경우.
  • 포트 중복 사용: 특정 포트가 이미 다른 프로세스에 의해 사용 중이거나 예약된 포트일 때.
  • 권한 문제: 낮은 번호(1024 이하)의 포트에 바인딩하려 할 때 일반 사용자 권한으로 실행하면 발생할 수 있습니다.

저는 포트 중복 사용이나 권한 문제 말고 잘못된 IP 설정을 세팅하는 방법을 알려드리겠습니다.

2. 내 IP가 네트워크에 있는지 확인

ip addr show

여기서 프로그램에 사용하려고 하는 IP 주소가 네트워크 인터페이스에 설정되어 있는지 확인합니다.

있다면 보통 맨 위나 2~3번째 라인에서 ip를 확인 하실 수 있습니다.

3. Ping을 써서 테스트 해보기

ping xxx.xxx.x.xxx (연결안되는 IP주소 입력)

이미 연결되어있으면 내가 연결하고자 하는 ip주소가 연결되고 있는 모습을 보실 겁니다.

하지만 Destination Host Unreachable라는 글들이 나온다면

아직 ip가 네트워크 인터페이스에 설정되지 않았을 수 도 있습니다.

4. IP 주소 수정

ip addr add 192.168.1.100/24 dev eth0

여기서 192.168.1.100은 추가하려는 IP 주소, eth0는 네트워크 인터페이스 이름입니다. 환경에 맞게 수정하세요. 수동으로 추가한 IP 주소는 서버 재부팅 시 사라질 수 있습니다.

5. 네트워크 설정 영구화

수동으로 추가한 IP 주소는 서버 재부팅 시 사라질 수 있습니다. /etc/network/interfaces 파일 또는 /etc/netplan/의 설정 파일에 IP를 추가하여 영구적으로 설정합니다.

저는 /etc/network/interfaces에 설정하는 것을 기준으로 하겠습니다.

이건 진짜 서버를 세팅한 회사마다 다르기 때문에 첫번째에 세팅 되어있는 코드를 싹다 복사하여 ChatGPT에게 내가 추가하고 싶은 ip주소를 적어주고 만들어 달라는게 최고입니다. 새로운 IP세팅을 첫번째 세팅 밑에 넣어줍니다.

간단한 예시로는

#first IP
~~~
~~~

# Added secondary IP 
iface eth0 inet static
     address xxx.xxx.xxx.xxxIP주소
    netmask 255.255.255.0

새로운 iface eth0 inet static 블록을 추가하여 보조 IP xxx.xxx.xxx.xxx를 설정합니다. 보조 IP는 eth0 인터페이스에 추가적으로 설정되어, 두 개의 IP가 모두 활성화됩니다.

6. 네트워크 설정 적용

systemctl restart networking

파일을 수정한 후 설정을 적용하려면 네트워크 서비스를 재시작합니다.

설정이 올바르게 적용되었는지 확인하려면 다음 명령어를 사용하여 IP 주소가 올바르게 할당되었는지 확인합니다:

ip addr show eth0

위의 단계들을 통해 bind: cannot assign requested address 오류를 해결할 수 있습니다. 저 같은 경우는 수동으로 ip주소를 세팅하고 영구적 세팅을 안했기 때문에 일어난 오류인 것 같습니다. 저같은 피해를 없애기 위해 다른 분들을 미리 세팅해주세요.