Linux PC를 공유기로 만들기

 

공유기가 따로 없어도, 사무용이나 소형 PC를 무선 공유기처럼 개조할 수 있습니다. 하드웨어를 튜닝하는 것이 아니라, PC를 구매했을 때 무선 모듈만 내장되어 있었다면 충분히 가능합니다.

 

원리는 휴대폰 핫스팟과 크게 다를 게 없습니다. 공유기가 될 PC에 꽂을 랜선 하나만 있어도, 나머지 휴대폰이나 태블릿 등 주변 기기들이 모두 인터넷을 이용할 수 있게 되는 거죠.

 

마침 저도 이렇게 생긴 미니 PC를 하나 보유 중이여서, 공유기 역할을 주면서 동시에 Linux도 알차게 사용하고 있습니다.

 

1. 무선 랜카드 확인


가장 먼저, 무선 랜카드가 PC와 연결되어 있는지부터 확인합니다. product: Wi-Fi가 발견되면 무선 랜카드가 설치되어 있음을 의미합니다.

$ sudo lshw -C network

 

2. AP 활성화


무선 네트워크 설정에 필요한 패키지들을 설치합니다.

$ sudo yum -y update
$ sudo yum -y install NetworkManager-wifi wpa_supplicant dhcp-server

 

하드웨어 상에 구성된 네트워크를 감지합니다. 표시되는 목록에서 TYPE 항목이 wifi로 출력된 행에 주목합니다. 제 경우는 wlan0이라는 네트워크 디바이스가 발견되었네요.

$ nmcli device status

 

해당 네트워크 디바이스에 대한 상세 설명을 볼 수 있습니다.

$ nmcli device show wlan0

 

/etc/NetworkManager/NetworkManager.conf경로로 들어가 아래 내용을 파일 하단에 추가합니다.

# /etc/NetworkManager/NetworkManager.conf 하단에 아래 내용 추가

[device]
wifi.scan-rand-mac-address=no

[ifupdown]
managed=false

[main]
plugins=ifupdown,keyfile

 

NetworkManager 서비스를 재시작하고 나서 새로운 무선 네트워크 채널을 추가할 것입니다.

$ sudo systemctl restart NetworkManager
$ sudo systemctl status NetworkManager
$ sudo systemctl restart wpa_supplicant
$ sudo nmcli connection show

 

무선 네트워크 설정을 진행합니다.

  • ifname: 무선 인터페이스 이름 (wlan0)
  • con-name: 라우터 내부에서 사용하는 연결 이름 (SSID와 동일하게 써도 됨)
  • ssid: 외부로 노출되는 무선 네트워크 이름
  • band: 대역폭, 2.4GHz(Wifi-4 이하, 802.11n)는 bg , 5GHz(Wifi-5 이상 802.11 ac 또는 802.11 ax)는 a (잘 모르겠으면 일단 라우터 장비가 LTE만 지원하는지, 5G도 지원하는지 확인해봐야 함)
  • channel: 앞의 band 에 따라 다름 (bg는 대표적으로 ‘3’, a 는 대표적으로 36을 사용. 자세한 건 https://en.wikipedia.org/wiki/List_of_WLAN_channels 을 참고하면 되는데, 어차피 복잡해서 어지간하면 알려준 대표 채널을 사용하길 권장)
  • password: 무선 네트워크 접속 비밀번호
# band가 bg면 2.4GHz, a면 5 GHz
$ sudo nmcli device wifi hotspot ifname wlan0 con-name Wisenet ssid Wisenet band bg channel 3 password 'wisenet98'

# band가 a면 5 GHz
$ sudo nmcli device wifi hotspot ifname wlan0 con-name Wisenet ssid Wisenet band a channel 36 password 'wisenet98'
$ sudo nmcli connection modify Wisenet ipv4.method manual ipv4.addresses 192.168.30.1/24 ipv4.gateway 192.168.30.1
$ sudo nmcli connection modify Wisenet connection.autoconnect yes
$ sudo nmcli connection modify Wisenet 802-11-wireless-security.key-mgmt sae # 이거 설정안하면 iphone, ipad에서 접속 불가
$ sudo nmcli connection up Wisenet
$ sudo nmcli connection show --active

 

3. DHCP 설정


Wifi에 연결된 무선 단말들에게 자동으로 IP 주소를 할당하기 위해 DHCP 서비스를 활성화할 것입니다.

 

/etc/dhcp/dhcpd.conf 설정 파일을 열어 아래 내용을 작성합니다.

  • subnet: AP 설정 단계에서 wlan0에 부여한 IP 대역 (ex., 192.168.30.0)
  • netmask: 255.255.255.0
  • range: 무선 단말(클라이언트)가 가질 수 있는 IP 대역
  • broadcast-address: 192.168.x.255로 설정
  • domain-name-servers: 도메인 서버 주소 (ex., 8.8.8.8: 가장 흔히 쓰는 구글 DNS 서버)
  • routers: 게이트웨이 IP 주소, 대게 192.168.x.1을 부여
# /etc/dhcp/dhcpd.conf

default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.30.0 netmask 255.255.255.0 {
       range dynamic-bootp 192.168.30.200 192.168.30.220;
       option broadcast-address 192.168.30.255;
       option domain-name-servers 8.8.8.8;
       option routers 192.168.30.1;
       }

 

DHCP 서비스를 PC의 기본 시작 서비스로 등록하고 재시작합니다.

$ sudo systemctl daemon-reload
$ sudo systemctl enable dhcpd.service
$ sudo systemctl restart dhcpd.service
$ sudo systemctl status dhcpd.service

 

마지막으로 DNS 쿼리를 수용할 수 있도록 방화벽을 설정한 뒤, PC를 재부팅합니다.

sudo firewall-cmd --zone=public --add-service=dns --permanent
sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo reboot

 

4. 무선 단말에서 Wifi 테스트


휴대폰이나 태블릿을 꺼내 신호가 잡히는 Wifi 목록에 새로운 무선 네트워크가 표시되는지 확인해봅니다.

반응형