====== Linux network-manager ====== * https://wiki.gnome.org/Projects/NetworkManager * [[https://developer.gnome.org/NetworkManager/stable/nmcli.html|nmcli]] * [[https://wiki.archlinux.org/index.php/NetworkManager|Arch Linux Network Manager]] * https://help.ubuntu.com/community/NetworkManager * Linux Network/WiFi 관리자 * [[linux:tint2|tint2]] 설치 후에도 네트워크 매니져 아이콘이 알림 영역(notification area)에 안보였는데 눌러보면 뭔가 있어서 WIFI 설정이 가능했다. 일단 기본 설정을 하고 나면 잘 보임. ===== VPN 선별적 Routing ===== * KDE의 경우**IPv4 -> 라우팅** 에서 **이 연결의 자원에만 사용(''never-default=true'')** 을 체크하고, IP 주소와 network mask 를 지정해주면 된다. * 이렇게 하면 기본으로 모든 요청은 VPN을 타지 않고 * IP/Network Mask를 추가한 것만 VPN을 탄다. * Network Mask 는 ''111.222.333.444/XX''의 ''XX''에 해당하는 것으로 앞의 두자리 고정이고, 나머지 2자리의 모든 IP에 대해 모두 VPN 라우팅을 할 경우에는 ''255.255.0.0'' 으로 지정한다(''/16''과 동일). * 특정 IP 를 명시하는 경우에는 ''255.255.255.255''이다. * Gateway 는 ''0.0.0.0''으로 지정하고, Metric ''0''으로 지정한다. * [[https://www.ip-sa.pl/doc/ras/max800-6000/m8netcfg/maxip.htm|Configuring IP Routing]] 참조. * 설정 파일 직접 편집은 ''/etc/NetworkManager/system-connections/*.nmconnection''을 직접 편집하면 된다. [ipv4] dns-search= method=auto never-default=true route1=xx.yy.zz.ww/32 route2=xx.yy.zz.ww/24 route3=... ===== nmcli 를 통한 커넥션 변경 / routing 변경 ===== * [[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-configuring_static_routes_using_nmcli|4.2. Configuring Static Routes Using nmcli Red Hat Enterprise Linux 7 | Red Hat Customer Portal]] # 추가 : - sudo nmcli connection modify +ipv4.routes "<예시IP>/32" # 삭제 : - sudo nmcli connection modify -ipv4.routes "<예시IP>/32" ===== 설정 reload ===== * ''*.nmconnection'' 파일을 직접 편집했을 경우 리로드를 해야 적용된다. sudo nmcli connection reload ===== nmtui ===== * ''nmtui'' 명령으로 터미널에서 설정 가능하다. ===== 설정 import/export ===== ==== nmcli 를 이용한 방법 ==== * [[https://unix.stackexchange.com/questions/140163/import-vpn-config-files-to-networkmanager-from-command-line|Import VPN config files to NetworkManager from command line - Unix & Linux Stack Exchange]] * [[https://developer.gnome.org/NetworkManager/stable/nmcli.html|nmcli: NetworkManager Reference Manual]] * export 시에 정보가 많이 누락되는 것으로 보임. # export nmcli connection export myconfig.ovpn # import nmcli connection import type openvpn file ~/myconfig.ovpn * 목록을 보고 수정할거 수정해주기 nmcli connection show nmcli connection modify myvpnconnectionname +vpn.data username=myusername ==== 파일 복사방법 ==== * [[https://unix.stackexchange.com/questions/351005/how-to-export-and-migrate-networkmanager-settings-to-new-system|networking - How to export and migrate NetworkManager settings to new system? - Unix & Linux Stack Exchange]] * ''/etc/Networkmanager/system-connections'' 에 있는 설정정보를 복사한다. * MAC Address 를 새로운 기기에 맞게 변경해줘야 한다.''ip a''로 MAC Addr 확인. cd /etc/NetworkManager/system-connections sed -i -e 's/// * * 복사한 파일의 권한을 변경해줘야 한다. cd /etc/NetworkManager/system-connections chmod 0600 * chown root:root * * 재시작 systemctl restart NetworkManager ==== 비밀번호 ==== * 비밀번호는 설정파일이 아니라 [[linux:kde:kwallet|KDE KWallet]] 이나 [[linux:gnome-keyring|Gnome-Keyring]] 등에 저장된다. * 따라서 keyring 서비스도 백업해야한다. ===== username 저장 안되는 문제 ===== * VPN 설정에서 사용자명(username)이 저장되지 않고 계속해서 물어보는 현상 발생 * [[https://askubuntu.com/questions/1233550/openconnect-keeps-asking-for-username-in-ubuntu-20-04|network manager - Openconnect keeps asking for username in Ubuntu 20.04 - Ask Ubuntu]] * [[https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2105|Username is not saved in openconnect VPN connection dialog (#2105) · Issues · GNOME / gnome-shell · GitLab]] : 실제 작동한 해결책 * [[https://bugzilla.redhat.com/show_bug.cgi?id=1332491#c24|1332491 – NetworkManager-openconnect not saving username in dialog]] * ''/etc/NetworkManager/system-connections/'' 아래에 있는 설정파일 중 VPN 관련 설정 파일을 찾아서 아래 명령으로 수정가능하다. # sudo 불필요. # , 을 자신의 값으로 변경 - 실제로는 잘 안됐음. nmcli con mod vpn.secrets 'form:main:username=','save_passwords=yes','vpn 'form:main:username-flags=0' ===== "waiting for network configuration" 혹은 네트워크 설정 변경후 부팅 오래걸리는 문제 ===== * [[http://askubuntu.com/questions/213614/waiting-for-network-configuration-problem|networking - "waiting for network configuration" Problem]] * [[http://askubuntu.com/questions/144743/ubuntu-server-12-04-waiting-for-network-configuration-and-network-down|wireless - Ubuntu Server 12.04: "waiting for network configuration" and network down]] * [[http://tech.pedersen-live.com/2012/05/disable-waiting-for-network-configuration-messages-on-ubuntu-boot/|Disable “Waiting for network configuration” messages on Ubuntu boot | Tech Scribblings]] * 문제의 요지는 별로 불필요한 상황인데 네트워크 인터페이스 초기화를 기다리느라 부팅시에 몇분씩 기다리고 있는 것이다. ==== 해결책 1 ==== 부팅시에 네트워크 인터페이스를 초기화하지 말고 network-manager나 [[linux:wicd|wicd]]를 사용하도록 ''/etc/network/interfaces''의 내용을 지워버린다. ''lo''만 남겨도 된다. 실제로 Mint Linux 17 버전의 해당 파일을 보면 아래 내용밖에 없다. # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback ==== 해결책 2 ==== 가급적 첫번째 해결책을 사용한다. 그래도 안되면, ''/etc/init/failsafe.conf'' 파일에서 불필요하게 오래 기다리는 시간을 줄인다. 최초의 ''sleep'' 값을 5 초 정도로 짧게 주고 나머지 ''sleep'' 부분은 ''#''으로 주석처리해버리면 된다. ===== nm-connection-editor / nmtui-editor ===== * ''nm-connection-editor'' 명령으로 GUI 로 커넥션을 편집할 수 있다. * ''nmtui-editor'' 명령으로 console 에서 커넥션을 편집할 수 있다. ===== WiFi 절전 기능 끄기 (powersave off) ===== * [[https://unix.stackexchange.com/questions/269661/how-to-turn-off-wireless-power-management-permanently|linux - How to turn off Wireless power management permanently - Unix & Linux Stack Exchange]] * ''sudoedit /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf'' 에서 **''wifi.powersave=2''**로 변경 [connection] wifi.powersave = 2 # 기존 값은 3 * ''NM_SETTING_WIRELESS_POWERSAVE_DEFAULT (0)'': use the default value * ''NM_SETTING_WIRELESS_POWERSAVE_IGNORE (1)'': don't touch existing setting * ''NM_SETTING_WIRELESS_POWERSAVE_DISABLE (2)'': disable powersave * ''NM_SETTING_WIRELESS_POWERSAVE_ENABLE (3)'': enable powersave * NetworkManager 재시작 sudo systemctl restart NetworkManager ===== 참조 ===== * [[https://developer.gnome.org/NetworkManager/stable/nmcli.html|nmcli: NetworkManager Reference Manual]]