netplan apply 를 돌리면 다음 경고가 붙는 경우가 있다.
** (generate:1234): WARNING **: Permissions for /etc/netplan/01-netcfg.yaml are too open.
Netplan configuration should NOT be accessible by others.
설정 파일에 무선 비밀번호나 인증 정보가 들어갈 수 있어 다른 사용자가 읽지 못하게 하라는 뜻이다. 경고일 뿐 적용은 되지만 남겨 둘 이유가 없다.
sudo chmod 600 /etc/netplan/*.yaml
sudo chown root:root /etc/netplan/*.yaml
클라우드 이미지가 만들어 둔 50-cloud-init.yaml 도 같이 걸린다. 같은 방법으로 고친다.
** (generate:1234): WARNING **: `gateway4` has been deprecated, use default routes instead.
gateway4 · gateway6 는 폐기됐다. 기본 경로는 routes 로 적는다.
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: false
addresses:
- 192.168.10.21/24
routes:
- to: default
via: 192.168.10.254
nameservers:
addresses: [192.168.10.1, 192.168.10.2]
search: [example.local]
to: default 가 현재의 표기다. to: 0.0.0.0/0 도 동작하지만 IPv6 와 표기가 갈리므로 default 를 쓴다.
Error in network definition: unknown key 'via'
키 이름이 틀린 것이 아니라 들여쓰기가 어긋난 것이 대부분이다. via 는 routes 목록 항목 안에서 to 와 같은 깊이여야 한다.
# 잘못됨 — via 가 목록 항목 밖으로 나가 있다
routes:
- to: default
via: 192.168.10.254
# 맞음
routes:
- to: default
via: 192.168.10.254
YAML 은 탭을 들여쓰기로 받지 않는다. 편집기가 탭을 넣었다면 그것만으로도 파싱이 깨진다. 적용 전에 문법을 먼저 검사한다.
sudo netplan generate
오류가 없으면 아무것도 출력하지 않는다.
네트워크 설정을 잘못 적용하면 SSH 가 끊기고 되돌릴 방법이 없다. netplan try 는 적용한 뒤 일정 시간(기본 120초) 안에 확인을 받지 못하면 자동으로 되돌린다.
sudo netplan try
접속이 유지되면 엔터를 눌러 확정하고, 끊기면 기다리면 원래 설정으로 돌아온다.
적용 후 실제 경로를 확인한다.
ip -br addr
ip route
resolvectl status
데스크톱 환경의 네트워크 설정에 VPN 만 보이고 유선이 없다면, 해당 인터페이스를 NetworkManager 가 관리하지 않는 상태다. netplan 의 renderer 가 networkd 면 그 장치는 GUI 에 나오지 않는다. 정상 동작이다.
GUI 로 관리하고 싶으면 렌더러를 바꾼다.
network:
version: 2
renderer: NetworkManager
인터페이스 자체가 안 보이는 것이라면 별개의 문제다. 커널이 장치를 잡았는지부터 확인한다.
ip link show
lspci -k | grep -A3 -i ethernet
DOWN 이면 올린다. 드라이버가 안 잡혀 있으면 설정이 아니라 드라이버 문제다.
sudo ip link set ens33 up