メインコンテンツへスキップ
  1. Posts/

ubuntu serverをルーター化する

·3 分·
Network Linux Network
なね
著者
なね
目次
Ubuntu Router - This article is part of a series.
Part 1: This Article

前置き
#

1.Openwrt用のExpressVPNクライアントがない!
2.11kでなんちゃってAircoveを爆誕させる
3.性能限界で速度がそんなに出ない
4.ubuntuをルーター運用してLinuxクライアントを入れればいいのでは…?

でもネットワークなんもわからない!助けてChatGPT!うわすごい助けてくれた!俺もういらない!!!
メンヘラバイト戦士が眠剤と日本酒を盛ったノリで思い出しながら書きなぐり😭😭😭😭

構成
#

CPU:Intel N100
RAM:8GB OS:Ubuntu22.04LTS
例の中華ミニPCです。
LANポートが4つあるのでちょうどよいと思いました。

目標
#

enp1s0:WAN(KDDI回線)
enp2s0:WANB(CATV)
enp3s0~4s0:LANポート

DHCPサーバーにAdguard Homeを採用。
最終的に何かしらのVPNクライアントを動かす。 Wireguardサーバーを構築してリモートアクセスしたい。
CFのDDNSをなんやかんや。

LANとWANの設定。
#

enp3s0,enp4s0でネットワークブリッジを構成する。
#

sudo apt install vim ufw
sudo vim /etc/netplan/00-installer-config.yaml
  • 00-installer-config.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: true
      nameservers:
        addresses:
          - 192.168.1.1
    enp2s0:
      dhcp4: true
      optional: true
    enp3s0:
      dhcp4: false
      optional: true
    enp4s0:
      dhcp4: false
      optional: true
  bridges:
    br0:
      interfaces: [enp3s0,enp4s0]
      addresses: [192.168.1.1/24]
      nameservers:
        addresses: [192.168.1.1]
      optional: true

sudo netplan applyで変更を反映する

起動時に二分間スタックするのをなんとかする。
#

/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.serviceのExecStart=を/lib/systemd/systemd-networkd-wait-online --anyにする。

フォワードを有効にする。
#

sudo vim /etc/sysctl.confnet.ipv4.ip_forward=1のコメントアウトを外す。

Adguard Homeの導入
#

ここはインストーラーでもsnapでもって感じ。
br0を待ち受けインターフェースに設定した(もしかしたら失敗だったかもしれない)

ufwの設定
#

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 53 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 53 proto udp
  • /etc/ufw/before.rules
*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-not-local - [0:0]

# Allow LAN traffic
-A ufw-before-input -i br0 -j ACCEPT
-A ufw-before-output -o br0 -j ACCEPT
-A ufw-before-input -i br0  -d 192.168.1.1 -j ACCEPT

# Allow established/related connections
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Allow traffic from LAN to WAN (NAT)
-A ufw-before-forward -i br0 -o enp1s0 -j ACCEPT
-A ufw-before-forward -i enp1s0 -o br0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Allow DNS traffic from router to itself
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-output -o lo -j ACCEPT

COMMIT

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o enp1s0 -j MASQUERADE
# -A POSTROUTING -o tun0 -j MASQUERADE
COMMIT

もしVPNクライアントを使うなら# Allow traffic from LAN to WAN (NAT)のenp1s0をtun0なりなんなりに変えてあげて
最後のコメントアウトを外せばオーケー

sudo ufw enablesudo ufw reloadして一回ちゃんと動いてるか確認した。

ExpressVPNのLinuxクライアントを入れて試してみた。
#

speedtest結果はDL:414.92Mbps UP:120.94Mbpsだった。
KDDI回線の速度が大体DL:500M UP:120Mくらいなのでまぁまぁって感じだった。
WindowsのExpressVPNではリクエスト毎にipがコロコロ変わってた気がした
なんちゃってルーターだと本体でcurlを叩いたときは変わったがサブネット配下のPCでリロードガチャガチャしても変わらなかった。

感想
#

ネットワークを軽く触れるきっかけになった。 linuxのVPNクライアントはうんちが多い。
NordVPNとかでもやってみたい。
今まで通りProtonVPNを使うならOpenwrt+wg.confで良いと思う。

WG鯖、ddnsはまたそのうちやる。

Ubuntu Router - This article is part of a series.
Part 1: This Article

Related

HyperVにGPUを割り当てて優勝したかった
·3 分
Linux Linux
新しいルートソリューション、APatchのススメ
·4 分
Android Android
Intel ARCなWindows環境でStable Diffusion WebUI
·2 分
Intel ARC Stable Diffusion AI
drm-xe-nextで遊ぶ
·5 分
Linux Intel GPU Mesa
PC用アバターをQuest GoodにしてFallback Avatarにする
·4 分
Unity Blender Unity VRChat Blender
EMUI11からダウングレードした端末が認識されなくなる問題
·3 分
Android Android