0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OrbStackのUbuntu環境にNoMachineをインストールしたらネットワークに接続できなくなった

0
Last updated at Posted at 2026-05-22

概要

リモートデスクトップアプリのNoMachineをOrbStack上のUbuntuにインストールしてGUI操作できるようにしたところ、以下の3つの問題が連鎖して発生しました。

No. 症状 原因 解決方法
1 インターネット接続不可 ConnMan(connmand)がsystemd-networkdと競合 systemctl mask connman
2 NoMachineサーバー一覧からUbuntuが消えた トラブルシュート中にnxserverをdisableしていた systemctl enable/start nxserver
3 FirefoxでWebサイトにアクセスできない /etc/resolv.confのsymlinkが壊れDNS不能に /etc/orbstack/resolv.confを手動作成

それぞれの問題の解決方法を記載します。


問題1:インターネット接続不可

症状

$ ping -c 3 8.8.8.8
From 192.168.139.49 icmp_seq=1 Destination Host Unreachable

調査

ip route show で異常なデフォルトルートを発見:

default dev eth0 scope link          ← 異常(metric 0)
default via 192.168.139.1 dev eth0 proto dhcp metric 100  ← 正常

scope link のルートが metric 0 で優先されるため、カーネルが8.8.8.8に対してもARPを直接投げてしまいゲートウェイを経由できない状態でした。

ip monitor routejournalctl で犯人を特定:

connmand[266]: eth0 {del} route 0.0.0.0 gw 0.0.0.0 scope 253 <LINK>
connmand[266]: eth0 {add} route 0.0.0.0 gw 0.0.0.0 scope 253 <LINK>

削除した瞬間に connmand が即座に再追加 していました。

根本原因

NoMachineのインストール時に ConnMan(connmand) が依存関係として導入されました。
OrbStackはsystemd-networkdでネットワークを管理しているため、両者が競合しconnmandが異常ルートを追加し続けたのが原因です。

解決手順

# connmandを停止・無効化・mask(再有効化も防ぐ)
sudo systemctl stop connman
sudo systemctl disable connman
sudo systemctl mask connman

# systemd-networkdでDHCPを再取得
sudo systemctl restart systemd-networkd

# 疎通確認
ping -c 3 8.8.8.8

確認コマンド

systemctl is-active connman        # "inactive" であること
systemctl is-active systemd-networkd  # "active" であること
ip route show                      # "default dev eth0 scope link" が無いこと

問題2:NoMachineサーバー一覧からUbuntuが消えた

症状

問題1が解消してインターネット接続はできるようになりましたが、Mac側のNoMachineクライアントのサーバー一覧にUbuntuが表示されなくなりました。

原因

問題1のトラブルシュート中に実行した sudo systemctl disable nxserver により、再起動後にnxserverが自動起動しなくなっていました。

$ systemctl status nxserver
Active: inactive (dead)
Loaded: disabled

avahi-daemonは正常動作中(ubuntu.local として192.168.139.49をアドバタイズ済み)だったため、nxserverを起動すればサービス検出は自動で回復する状態でした。

解決手順

# nxserverを有効化・起動
sudo systemctl enable nxserver
sudo systemctl start nxserver

# ポートがlistenされているか確認
ss -tlnp | grep 4000

期待される出力:

LISTEN 0  100  0.0.0.0:4000  0.0.0.0:*
LISTEN 0  100     [::]:4000     [::]:*

問題3:FirefoxでWebサイトにアクセスできない

症状

ping 8.8.8.8 は通るが、FirefoxでWebサイトにアクセスできない状態でした。

$ host google.com
;; communications error to 127.0.0.1#53: connection refused
;; no servers could be reached

原因の連鎖

  1. 問題1の調査中に systemd-resolved の有効化を試みたが、OrbStackがmaskしていたため失敗
  2. sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf を実行
  3. OrbStack管理のsymlinkが上書きされた
  4. リンク先の /etc/orbstack/resolv.conf が存在せず /etc/resolv.conf が死んだ
  5. DNSクエリが誰もlistenしていない 127.0.0.1:53 に向かい全て失敗

補足:
OrbStackはsystemd-resolvedをmaskして独自DNSリゾルバ(0.250.250.200)を使う設計のため、systemd-resolvedの有効化は不要かつ有害。

解決手順

# OrbStackのDNS設定ディレクトリとファイルを手動作成
sudo mkdir -p /etc/orbstack
sudo tee /etc/orbstack/resolv.conf << 'EOF'
nameserver 0.250.250.200
options edns0
search .
EOF

# 確認
cat /etc/resolv.conf
getent hosts google.com

確認コマンド

cat /etc/resolv.conf
# → nameserver 0.250.250.200 が表示されること

getent hosts google.com
# → IPアドレスが返ること

最終的な正常構成

役割 サービス 状態
ネットワーク管理・DHCP systemd-networkd active
DNS OrbStack独自リゾルバ(0.250.250.200 /etc/orbstack/resolv.conf
サービス検出(mDNS) avahi-daemon active
リモートデスクトップ nxserver(port 4000) active
ネットワーク管理(競合) connman masked
DNS(OrbStackが管理) systemd-resolved masked

再発防止チェックリスト

NoMachineをOrbStack Ubuntuにインストールした直後に実行:

# 1. connmandが起動していたらmaskする
systemctl is-active connman && sudo systemctl mask connman

# 2. systemd-networkdを再起動してDHCPを正常取得
sudo systemctl restart systemd-networkd

# 3. nxserverが自動起動するか確認
systemctl is-enabled nxserver

# 4. 疎通確認
ping -c 3 8.8.8.8
getent hosts google.com

参考:主要な診断コマンド

# ルーティング異常の確認
ip route show

# ルート変化のリアルタイム監視(犯人特定に有効)
sudo ip monitor route

# どのプロセスがルートを操作しているか
sudo journalctl -f | grep -iE "route|network|connman"

# NICの疎通確認
ping -c 3 192.168.139.1   # ゲートウェイ
ping -c 3 8.8.8.8         # 外部

# ARPテーブル(外部IPにFAILEDが並ぶ場合はscope linkルートが原因)
ip neigh show

# DNSの確認
getent hosts google.com
cat /etc/resolv.conf
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?