Ubuntu Desktop Edition에서 로그온하기 전에 유선 인터페이스에서 네트워킹을 시작하는 방법


17

문제

부팅 후 Ubuntu 9.10 Desktop Edition (및 이전 버전도 테스트하지 않았 음)에는 최소한 한 명의 사용자가 로그인 할 때까지 네트워크 연결이 없습니다. 즉, 네트워킹이 필요한 서비스 (예 : openssh-server)는 사용할 수 없습니다. 누군가 gdm, kdm 또는 TTY를 통해 로컬로 로그인합니다.

배경

Ubuntu 9.10 Desktop Edition 은 NetworkManager 서비스를 사용하여 Gnome의 nm- 애플릿 (또는 KDE의 해당 항목)에서 명령을 가져옵니다. 알다시피, 부팅시 NetworkManager가 실행되는 동안 로그인 할 때까지 nm-applet이 실행되지 않고 Gnome 세션이 시작될 때까지 (또는 KDE와 유사하기 때문에) 처음 로그인 할 때까지 연결할 명령이 실행되지 않습니다. TTY를 통해 로그인 할 때 NetworkManager가 네트워크에 연결하라는 메시지가 무엇인지 잘 모르겠습니다.

네트워크 연결 시작과 관련된 몇 가지 관련 변수가 있습니다.

  • 유선 대 무선 (및 ​​결과 드라이버, SSID, 암호 및 우선 순위)
  • 정적 대 DHCP
  • 여러 인터페이스

제약

  • Ubuntu 9.10 Karmic Koala 지원 (추가 지원 버전의 보너스 포인트)
  • 유선 eth0 인터페이스 지원
  • DHCP를 통해 IP 주소 받기
  • DHCP를 통해 DNS 정보를받습니다 (분명히 DHCP 서버가이 정보를 제공해야합니다)
  • 적절한 시간에 네트워킹을 활성화합니다 (예 : 파일 시스템이로드 된 후 또는 ssh 시작과 같은 네트워크 서비스 전에)
  • 배포판 또는 버전 (예 : Server Edition)을 전환하는 것은 허용되지 않습니다.
  • 고정 IP 구성으로 전환하는 것은 허용되지 않는 솔루션입니다

질문

  • Ubuntu Desktop Edition에서 로그온하기 전에 유선 인터페이스에서 네트워킹을 시작하는 방법은 무엇입니까?

또한보십시오

참고 문헌

답변:


9

부팅시 네트워크 인터페이스가 DHCP를 통해 자동으로 구성되도록하려면 다음 행을 다음에 추가하십시오 /etc/network/interfaces.

auto eth0
iface eth0 inet dhcp

이렇게하면 NetworkManager가 실행되지 않아도 인터페이스가 활성화됩니다. 원하는 경우 패키지 네트워크 관리자를 제거 할 수도 있습니다.


아아, 그것은 질문을 할 때 오타 일뿐이지만 그것이 내가 시도한 것입니다. 즉, /etc/init.d/networking restart를 수행하면 "* Reconfiguring network interfaces ..."가 표시되지만 인터페이스가 나타나지 않고 IP를 얻는 것이 훨씬 적습니다. 재부팅해도 이러한 설정으로 인터페이스가 나타나지 않습니다.
Burly

나는 : auth eth0 대신 : auto eth0 귀하의 게시물에서 여전히 오타가 게시물에서만 수행 한 오타 라고 가정합니다.
goedson

방금 Ubuntu 9.10을 새로 설치하고 위에서 언급 한대로 / etc / network / interfaces를 편집했으며 발행 sudo /etc/init.d/networking restart은 DHCP를 통해 eth0을 설정하고 구성했습니다.
goedson

오 마이 메가 페일! : facepalm : 당신이 언급 한 원래 오타는 없었지만, 첫 줄에 'auto'대신 'auth'가 있습니다. 투표가 너무 길어서 (wth) 투표를 변경하려면 답변을 수정해야한다고 생각합니다. 나는 어려워서 혼란을 피하기 위해 질문에서 "내가 시도한 것"섹션을 제거했습니다. " /etc/network/interfacesNetworkManager가 인터페이스를 관리하지 못하게하고 dhcp를 통해 인터페이스를 가져 오지 못하도록하기 위해 다음을 추가하십시오." 이 수정 프로그램이 NM이 설치된 상태에서 부팅 할 때이를 확인하는지 확인해야합니다.
Burly

해결책이 무엇인지 명확하게 대답을 변경했습니다.
goedson

1

데비안 / 우분투에는 부팅시 서버를 관리하는 자체 프로그램이 있습니다.

시험 update-rc.d STARTUP-SCRIPT defaults

eth0에 대한 특정 스크립트를 검색하고이를 사용하여 활성화하십시오.

항상 자신 만의 스크립트를 만들어 init.d에 배치하고 이전 명령을 실행하면 부팅시로드됩니다.

또는 /etc/rc.local에 해당 명령 (ifconfig up, dhcpcd)을 넣으십시오 (이 파일은 부팅 할 때마다 읽습니다)


이전에 update-rc.d를 사용했지만 문제는 eth0에 특정한 STARTUP-SCRIPT를 찾는 것입니다. 적어도 우분투 9.10 DE에는 아무것도 없습니다. /etc/init.d/networking 스크립트가 있습니다. 실제로 시작 작업을 호출하는 것입니다 (/ lib / init / update-job 네트워킹 시작이 특별히 호출됩니다). 위에서 언급했듯이 /etc/init.d/networking start, / lib / init / update-job 네트워킹 시작 및 / 또는 서비스 네트워킹 시작 / 다시 시작을 호출해도 인터페이스가 훨씬 덜 IP를 얻지 못합니다. 내 스크립트를 작성할 수는 있지만 더 우아한 솔루션을 원했습니다.
Burly

rc.local에 dhclient eth0를 넣는 것이 나의 유일한 옵션 일 수 있습니다. 작동하는지 확인하려면 이것을 시도해야합니다. 여기에 넣는 문제는 모든 시스템 서비스가 시작될 때까지 rc.local이 실행되지 않기 때문에 다른 시작 서비스가 실제로 ssh와 같은 그것에 의존 할 수 없다는 것입니다.
Burly

1
해결 방법 : dhclient eth0/etc/rc.local에 추가하면 시작시 eth0 인터페이스가 제대로 나타나고 DHCP를 통해 IP를 얻습니다. 적어도 나를 위해, openssh-server가 런레벨 234에서 시작하도록 설정되어 있기 때문에 누구나 로컬로 로그인하기 전에 SSH를 사용할 수도 있습니다. 모든 네트워크 가능 서비스가 인터페이스를 rc.local로 가져 와서 성공적으로 작동하는지 모르겠습니다. 그러나 rc.local은 시스템 서비스 후에 실행되기 때문에 ntpdate).
Burly
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.