8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Ubuntu Server 22.04]  Tailscale インストール

Last updated at Posted at 2023-01-21

注意事項

リンク先に記載

[Ubuntu Server 22.04] 個人的初期設定 覚書

概要

「目次」

1.Tailscale インストール
  概要
  コンストラクション
   Tailscale インストール
     1.インストレイション
      [一括インストール]
      [手動インストール]
     2.Tailscale サービスの認証
      [Authentication]
   任意な追加の設定
     3.オプション
      [IPフォワードの有効化]
      [サブネット ルーティング、出口ノードの利用可能化]
     4.ブラウザから有効化
   その他の操作
     Tailscale へのログイン、ログアウト、アカウントの追加、アカウントの切り替え
      [ログイン、再ログイン(+起動)]
      [ログアウト]
      [アカウントの追加]
      [アカウントの切り替え]
     テールネット内にローカル サーバーを展開
  引用元、参照元、参考先
2.WeTTY インストール
3.Ubuntu Desktop(GDM3 ubuntu カスタム) インストール、自動ログイン設定
4.Ubuntu Desktop RDP セットアップ
5.PowerTOP TLP インストール
6.自動再起動設定(Crontab, rtcwake)

「説明」

Tailscale は、非常に簡単に構築できる、機器同士を VPN でピアツーピア接続するソフトです。

コンストラクション

Tailscale インストール

1.インストレイション

➀~➃ までを行う

[一括インストール]
bash
‘[手動インストール]の ➀~➁ に相当‘
curl -fsSL https://tailscale.com/install.sh | sh
[手動インストール]
bash
’➀ Tailscale 公式サイトから、リポジトリと鍵を追加’
  curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
  curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list

’➁ Tailscale をインストール’
  sudo apt update
  sudo apt install tailscale

’➂ Tailscale の起動及び、ブラウザでの認証’
  sudo tailscale up

’➃ Tailscale の起動確認’
  tailscale ip -4
  tailscale status

2.Tailscale サービスの認証

 ブラウザから、Tailscale サービスの認証を行います。

[Authentication]

 1. sudo tailscale up を実行して表示された URL に適当なブラウザからアクセスしてください
  ※再認証は sudo tailscale up --force-reauth
スクリーンショット (482).png
 2. すでに所有している Google, Microsoft, GitHub のいずれかのアカウントでサインインし、そのアカウントを Tailscale に登録してください。
※ここでは Google アカウントを使っています。
スクリーンショット (483).png
スクリーンショット (484).png
スクリーンショット (485).png
↑サインインが完了すれば、上記の画面が表示され、認証されています。
 3. アドミンコンソールにアクセスして機器が登録されていることを確認します。
https://login.tailscale.com/admin/machines
スクリーンショット (486).png
以上で認証は完了です。

任意な追加の設定

※必要な場合のみ行う

3.オプション

[IPフォワードの有効化]
bash
’➄サブネットルーターの設定、IPフォワードの有効化’
  echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
  echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
  sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

 オプション:UFW での許可

bash
Add_Text='\\n-A ufw-before-forward -i tailscale0 -j ACCEPT \n-A ufw-before-forward -o tailscale0 -j ACCEPT'

# 確認
sudo grep "# End required lines" /etc/ufw/before.rules
sudo sed '/^# End required lines$/a '"$Add_Text" /etc/ufw/before.rules | awk '/# End required lines/,/# allow all on loopback/'

# 実行
sudo sed -i '/^# End required lines$/a '"$Add_Text" /etc/ufw/before.rules

# 確認
sudo awk '/# End required lines/,/# allow all on loopback/' /etc/ufw/before.rules
[サブネット ルーティング、出口ノードの利用可能化]

 [IPフォワードの有効化]を行った後に実行する。

bash
’➅′   1.LAN内へのアクセスと、ローカルIPアドレスの使用を可能にさせる’
  sudo tailscale down
  sudo tailscale up
  sudo tailscale up --advertise-routes=xxx.xxx.xxx.xxx/24

’➅′′  2.対象PCを出口ノードとして使用できるようにする         ’
  sudo tailscale down
  sudo tailscale up
  sudo tailscale up --advertise-exit-node

’➅′′′ 1.LAN内へのアクセスと、ローカルIPアドレスの使用を可能にさせる’
’     2.対象PCを出口ノードとして使用できるようにする         ’
  sudo tailscale down
  sudo tailscale up
  sudo tailscale up --advertise-routes=xxx.xxx.xxx.xxx/24 --advertise-exit-node

  # 例)
  # tailscale up --advertise-routes=192.168.10.0/24 --advertise-exit-node
  # tailscale up --advertise-routes=172.19.0.0/16 --advertise-exit-node

  # うまくいかない場合
  # sudo tailscale up --reset

Available ; Enable

4.ブラウザから有効化

 [サブネット ルーティング、出口ノードの利用可能化]を行った後に実行する。
 次に アドミンコンソール へアクセス
https://login.tailscale.com/admin/machines

[別区分のネットワークへの転送を有効化]

・"・・・" ⇒ "Edit route setting" ⇒ "Subnet routes"
スクリーンショット (491).png
スクリーンショット (492).png

[出口ノードの有効化]

・"・・・" ⇒ "Edit route setting" ⇒ "Use as exit node"
スクリーンショット (491).png
スクリーンショット (487).png
スクリーンショット (488).png

その他の操作

Tailscale へのログイン、ログアウト、アカウントの追加、アカウントの切り替え

[ログイン、再ログイン(+起動)]
  1. 現在アクティブなアカウントがないときに認証 及び ログイン
    sudo tailscale up
  2. 再認証(現在アクティブなアカウントからログアウトし、再度ログインする)
    sudo tailscale up --force-reauth
[ログアウト]
  1. 切断 及び 現在アクティブなアカウントからログアウト
    sudo tailscale logout
  2. 特定のアカウントからログアウト
    sudo tailscale logout MailAddress@gmail.com
[アカウントの追加]
  1. アカウントの追加
    sudo tailscale login
  2. 追加されたか確認
    sudo tailscale switch --list
[アカウントの切り替え]
  1. すべてのログインしているアカウントを表示(*が現在アクティブなアカウントを示す)
    sudo tailscale switch --list
  2. 指定したアカウントをアクティブに切り替える
    sudo tailscale switch MailAddress@example.com

テールネット内にローカル サーバーを展開

"version 1.38.1" 以降

bash
ーーー使い方ーーー
  # 末尾の off でアクティブなサーバーの一覧からサーバーを削除する
  tailscale serve https:<port> <mount-point> { local-IP:port / full-path / text } [off]
  tailscale serve tcp:<port> tcp://localhost:<local-port> [off]
  tailscale serve tls-terminated-tcp:<port> tcp://localhost:<local-port> [off]
  tailscale serve status [--json]

  echo "{ ... json ... }" | tailscale serve set-raw

  tailscale funnel <port> on/off
  tailscale funnel status [--json]
ーーーーーーーーー

※例)
# 展開したものを非公開にする
sudo tailscale serve https / off

# URL のカスタマイズの例("/Add_URL/" の部分)
sudo tailscale serve https /Add_URL/ text:"Hello, world!"
# アクセスは "https://ipアドレス.tail16進数.ts.net/Add_URL"

# 127.0.0.1:3000のWebサーバーへの接続をプロキシ
sudo tailscale serve https / 127.0.0.1:3000
# port:10000 で展開
sudo tailscale serve https:10000 / http://127.0.0.1:3000

# 単一のファイルまたはファイルをディレクトリごと展開(絶対パス) 
sudo tailscale serve https / "/home/$(whoami)/File.txt"
sudo tailscale serve https /  /home/$(whoami)/Directory/

# シンプルに文字列を配信
sudo tailscale serve https / text:"Hello, world!"

# TCPパケットを、ローカルTCPサーバーの port:5432 に転送
sudo tailscale serve tcp:2222 tcp://localhost:22

# TCPパケットを、tailnet内でTLSでの接続を終端させ、ローカルTCPサーバーの port:80 に転送
sudo tailscale serve tls-terminated-tcp:443 tcp://localhost:80

# サーバーのステータス表示
tailscale serve status

# serve 設定の全消し
echo {} | sudo tailscale serve set-raw

# インターネット全体に公開 (<port> = 443, 8443, 10000)
sudo tailscale funnel 443 on

# 展開されているすべてのサーバーの funnel のステータスを出力
tailscale funnel status

以下は 2023/03/14 (version 1.36.2) までの方法
 検証した翌日にコマンドが変わるとかウケる

bash
### A ### / ### B ### / ### C ###

### A ###
tailscale serve [flags] "mount-point" {proxy|path|text} <arg>

  flags:
    [--remove] "mount-point"
    # <port> = 443(既定), 8443, 10000
    [--serve-port] <port>
  mount-point:
    "/"
    "/~~~"
  proxy|path|text:
    {proxy} <port OR ip:port>
    {path} <full-path>
    {text} "<some-text>"

※例)
sudo tailscale serve / proxy 80
sudo tailscale serve --remove /

sudo tailscale serve / path "/home/$(whoami)/File.txt"
sudo tailscale serve / path  /home/$(whoami)/Directory/
sudo tailscale serve --remove /

sudo tailscale serve /Add_URL/ text "Hello, world!"
sudo tailscale serve --remove /Add_URL/

sudo tailscale serve --serve-port 10000 / proxy 80
sudo tailscale serve --remove --serve-port 10000 / 


### B ###
tailscale serve [flags] {sub-command} <arg>

  flags:
    [--remove] {tcp} <port>
    # <port> = 443(既定), 8443, 10000
    [--serve-port] <port>
  sub-commands:
    {status}
    {status --json}

    {tcp} <port>
    {tcp --terminate-tls} <port>

    # インターネット全体に 公開/非公開
    {funnel} <on/off>

※例)
tailscale serve status

sudo tailscale serve tcp 5432
sudo tailscale serve --remove tcp 5432

sudo tailscale serve tcp --terminate-tls 3706
sudo tailscale serve --remove tcp 3706

sudo tailscale serve --serve-port 8443 tcp --terminate-tls 555
sudo tailscale serve --remove --serve-port 8443 tcp 555

# "Settings → General → Funnel の有効化" が必要
sudo tailscale serve funnel on
sudo tailscale serve funnel off


### C ###
echo "{ ... json ... }" | tailscale serve set-raw

※例)
# serve 設定の全消し
echo {} | sudo tailscale serve set-raw

引用元、参照元、参考先

Tailscale 公式
 ・https://tailscale.com/kb/1080/cli/
 ・https://tailscale.com/kb/1103/exit-nodes/?tab=linux
 ・https://tailscale.com/kb/1187/install-ubuntu-2204/
 ・https://tailscale.com/kb/1225/fast-user-switching
 ・https://tailscale.com/kb/1242/tailscale-serve/
GiHub issue #
 ・https://github.com/tailscale/tailscale/issues/367
 ・https://github.com/tailscale/tailscale/issues/7086
reddit Posts
 ・/r/Tailscale/comments/z58wzt/more_funnel_questions/

8
7
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
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?