리눅스(Arch Linux, Ubuntu 등 systemd 기반 시스템)에서 parprouted 없이 내장 커널 기능만으로 완벽하게 브릿지를 구성하는 2가지 방법의 전체 설정 소스 코드 를 제공해 드립니다. 방법 1: iptables를 이용한 L3 NAT (서브넷 분리 / 가장 추천) 무선망(예: 192.168.1.x )과 유선망(예: 192.168.2.x )을 분리하여 리눅스 커널의 라우팅과 NAT를 이용하는 방법입니다. 호환성 문제가 전혀 발생하지 않습니다. 1. 실행 스크립트 작성 ( /usr/local/bin/setup_nat_bridge.sh ) Bash #!/bin/bash # 무선 및 유선 인터페이스 이름 WLAN_IF="wlan0" ETH_IF="eth0" # 유선 인터페이스에 할당할 브릿지(게이트웨이) IP ETH_IP="192.168.2.1/24" # 1. 유선 인터페이스 활성화 및 IP 할당 ip addr flush dev ${ETH_IF} ip addr add ${ETH_IP} dev ${ETH_IF} ip link set ${ETH_IF} up # 2. 리눅스 커널 IPv4 포워딩 활성화 echo 1 > /proc/sys/net/ipv4/ip_forward # 3. iptables 초기화 iptables -F iptables -t nat -F iptables -X # 4. NAT(마스커레이딩) 및 방화벽 포워딩 룰 적용 iptables -t nat -A POSTROUTING -o ${WLAN_IF} -j MASQUERADE iptables -A FORWARD -i ${ETH_IF} -o ${WLAN_IF} -j ACCEPT iptables -A FORWARD -i ${WLAN_IF} -o ${ETH_IF} -m state --state RELATED,ESTABLISHED -j ACCEPT 2. 스크립트 실행 권한 부여 Bash chmod +x /usr/local/bin/setup_nat_bridge.sh 3. systemd 서비스 등록 ( /etc/systemd/system/nat-bridge.service ) 부팅 시 무선 랜(wpa_supplicant 또는 NetworkManager)이 연결된 후 자동으로 적용되도록 서비스 파일을 생성합니다. Ini, TOML [Unit] Description=L3 NAT Bridge for Wireless After=network.target network-online.target wpa_supplicant.service Wants=network-online.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/local/bin/setup_nat_bridge.sh ExecStop=/usr/bin/iptables -t nat -F ; /usr/bin/iptables -F ; /usr/bin/echo 0 > /proc/sys/net/ipv4/ip_forward [Install] WantedBy=multi-user.target 4. 서비스 활성화 및 시작 Bash systemctl daemon-reload systemctl enable nat-bridge.service systemctl start nat-bridge.service 방법 2: 커널 Proxy ARP를 이용한 가상 L2 브릿지 (동일 서브넷 유지) 무선망의 서브넷(예: 192.168.1.x )을 유선 기기(예: 192.168.1.50 )에 그대로 할당해야 할 때 사용하는 스크립트입니다. 데몬 없이 리눅스 커널이 ARP 응답을 가로채서 처리합니다. 1. 실행 스크립트 작성 ( /usr/local/bin/setup_proxyarp.sh ) Bash #!/bin/bash WLAN_IF="wlan0" ETH_IF="eth0" # 유선 랜에 연결될 클라이언트 PC의 고정 IP CLIENT_IP="192.168.1.50" # 1. 유선 인터페이스 활성화 (IP는 할당하지 않음) ip link set ${ETH_IF} up # 2. 리눅스 커널 IPv4 포워딩 및 Proxy ARP 활성화 echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp echo 1 > /proc/sys/net/ipv4/conf/${WLAN_IF}/proxy_arp echo 1 > /proc/sys/net/ipv4/conf/${ETH_IF}/proxy_arp # 3. 호스트 라우팅 추가 (해당 클라이언트 IP로 가는 패킷을 유선 포트로 강제 라우팅) ip route add ${CLIENT_IP}/32 dev ${ETH_IF} 2. 스크립트 실행 권한 부여 Bash chmod +x /usr/local/bin/setup_proxyarp.sh 3. systemd 서비스 등록 ( /etc/systemd/system/proxyarp-bridge.service ) Ini, TOML [Unit] Description=Kernel Proxy ARP Bridge After=network.target network-online.target Wants=network-online.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/local/bin/setup_proxyarp.sh ExecStop=/usr/bin/ip route del 192.168.1.50/32 dev eth0 ; /usr/bin/echo 0 > /proc/sys/net/ipv4/ip_forward [Install] WantedBy=multi-user.target 4. 서비스 활성화 및 시작 Bash systemctl daemon-reload systemctl enable proxyarp-bridge.service systemctl start proxyarp-bridge.service 두 방법 모두 외부 데몬 설치 없이 Linux 표준 도구와 커널 파라미터만으로 완벽하게 동작합니다. 필요에 따라 하나의 스크립트만 선택하여 적용하시면 됩니다.