GL.iNetルーターでTailscaleを使い、自宅LANのPCにRustDesk直接IP接続する方法

前回の記事では、各端末にTailscaleをインストールして 100.x.x.x のIPでRustDesk接続する方法を紹介しました。ですが、自宅のPCすべてにTailscaleを入れて回るのは手間です。

そこで本記事では、GL.iNetルーターをTailscaleのサブネットルーターにする方法を解説します。ルーター1台をTailscaleに参加させるだけで、自宅LANにつながっているすべての端末に外出先から到達できるようになり、RustDeskは普段使っているLAN内のIP(192.168.8.x)でそのまま接続できます。

この構成のしくみ

GL.iNetルーターをサブネットルーターとして動かすと、外出先の端末は次のような経路で自宅LANに入れます。

外出先のノートPC(Tailscale)
        │  tailnet(暗号化経路)
        ▼
GL.iNetルーター(サブネットルーター / 100.x.x.x)
        │  自宅LAN(192.168.8.0/24)
        ▼
自宅PC(RustDeskのみ・192.168.8.x)

ポイントは、Tailscaleを入れるのはルーターと外出先の端末だけでよいことです。自宅のPC側はTailscale不要で、RustDeskの「ダイレクトIPアクセス」を有効にしておくだけで済みます。複数台のPCやNAS、ラズパイなどを自宅に置いている場合に特に効率的です。

本記事ではGL.iNetのデフォルト構成(ルーターIP 192.168.8.1、LANサブネット 192.168.8.0/24)を前提に説明します。環境に合わせて読み替えてください。

手順1:ルーターでTailscaleを有効にする

ブラウザで 192.168.8.1 を開き、GL.iNetの管理画面にログインします。

  1. 左メニューの 「アプリケーション(APPLICATIONS)」→「Tailscale」 を開く
  2. Tailscaleのトグルを オン にして「適用(Apply)」をクリック
  3. しばらくすると デバイスバインドリンク(Device Bind Link) が表示されるので、これをクリック
  4. Tailscaleのログイン画面が開くので、アカウントでログインし、デバイスの接続(Connect)を承認する

接続が成功すると、ルーターに 100.x.x.x 形式のIPが割り当てられます。

手順2:自宅LANへのアクセスを許可する

ルーターをサブネットルーターとして機能させるには、LANサブネットをtailnetに広告する必要があります。

GL.iNetのTailscale設定画面で 「Allow Remote Access LAN」 を有効にして「適用(Apply)」をクリックします。これでルーターが 192.168.8.0/24 をtailnetに広告するようになります。

この「Allow Remote Access LAN」を一度も有効にしていないと、GL.iNetのファームウェアが tailscale0 のファイアウォールゾーンを作成せず、LAN側への転送が機能しません。サブネットルーティングを使うなら必須の設定です。

手順3:Tailscale管理コンソールでルートを承認する

ルーターが広告したサブネットは、Tailscale側で承認するまで有効になりません。

  1. Tailscale管理コンソール の「Machines」ページを開く
  2. 一覧からGL.iNetルーターを探す(「Subnets」バッジが付いています)
  3. 右側の三点アイコン →「Edit route settings」をクリック
  4. 広告された 192.168.8.0/24 のルートを 承認(Approve) する

あわせて、同じメニューから 「Disable key expiry(キー有効期限の無効化)」 を実行しておきましょう。これをしておかないと、一定期間でルーターの認証が切れ、外出先から再認証できずに接続できなくなる恐れがあります。

手順4:接続元の端末でサブネットを受け入れる

外出先で操作する側の端末にも、前回同様Tailscaleをインストールしてログインしておきます。そのうえで、広告されたサブネットを受け入れる(accept routes) 設定を有効にします。

  • Windows / macOS アプリ:メニューから「Use Tailscale subnets」など、サブネットルートを使う設定を有効にする
  • Linuxsudo tailscale up --accept-routes を実行する

これで、外出先の端末から自宅LANの 192.168.8.x に直接到達できるようになります。試しに自宅PCのLAN IPに ping を打って、応答が返るか確認しておくと確実です。

手順5:自宅PC側でRustDeskを準備する

操作される側(自宅PC)のRustDeskで、ダイレクトIPアクセスを有効にします。ここはシリーズ共通の設定です。

  1. 設定 →「セキュリティ(Security)」 2.「ダイレクトIPアクセスを有効にする(Enable direct IP access)」にチェック
  2. 無人運用のため 固定パスワード を設定

待ち受けポートはデフォルトで TCP 21118 です。自宅PCのファイアウォール(Windows Defender、ESETなど)でこのポート、またはRustDesk本体の通信を許可しておきます。

手順6:自宅PCのLAN IPで接続する

外出先のRustDeskを開き、「リモートデスクトップを制御(Control Remote Desktop)」欄に、自宅PCのLAN内IPアドレスを入力します。

192.168.8.110

100.x.x.x ではなく、あくまで自宅LAN内のIPを指定するのがこの構成のポイントです。ルーターがサブネットルーターとして橋渡ししてくれるため、外出先からでも自宅にいるのと同じIPでつながります。「接続」を押し、自宅PCで設定したパスワードを入力すれば完了です。

補足:他のVPNと併用している場合の注意

GL.iNetルーターでTailscaleと別のVPN(WireGuardなど)を同時に運用している場合は、いくつか注意点があります。

  • サブネットの競合:自宅LANが 192.168.8.0/24 で、接続元の別ネットワークも同じ帯を使っていると、ルートが衝突して到達できません。どちらかのLAN帯を変更してください。
  • 経路の競合:VPNインターフェースにグローバルに到達可能なIPが割り当たっていると、Tailscaleがそのトンネル経由のIPをエンドポイントとして広告してしまうことがあります。この場合、ファイアウォール(/etc/firewall.user など)で該当インターフェースの通信を明示的に制御し、意図したインターフェースに通信が流れるようにします。
  • 再起動後の永続性:firewall.userに追記したルールは、重複追加を防ぐロジックを入れたうえで永続化しておくと、再起動後も設定が保たれます。

まとめ

  • GL.iNetルーターをTailscaleの サブネットルーター にすると、自宅LANの全端末に外出先から到達できます
  • 必要なのは ルーターと接続元端末へのTailscale導入だけ。自宅PC側はTailscale不要です
  • ルーターで 「Allow Remote Access LAN」 を有効化 → Tailscale管理コンソールでサブネットを 承認キー有効期限を無効化、が要点です
  • 接続元では サブネットの受け入れ(accept routes) を有効にします
  • RustDeskは自宅PCで ダイレクトIPアクセス+固定パスワード を設定し、外出先からは 自宅LANのIP(192.168.8.x を指定して接続します

コメント