====== 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]]