VNC の接続元を家のネットワークに絞り、認証なしをやめる(Linux・ufw)
この手順で使う値
- OS:Linux
- ポート:5900・5901
- 家のネットワークの例:192.168.1.0/24。コマンドの 192.168.1.0/24 は、お使いのネットワークの範囲に置き換えてください。
Pengolin のアプリでは、お使いのPCで見つかったポートとネットワークの範囲を入れた手順を表示します。
これは何か
VNC は、別の機器からこのPCの画面を見て操作する仕組みです。今は、どこからでも接続を受けるか、接続のはじめにパスワードなしの方式(None)を選べると示している状態です(ログインや画面の取得は試していません)。ここでは、ufw のファイアウォールで家のネットワーク 192.168.1.0/24 からだけ受けるようにし、認証なしの設定をやめます。VNC を使っていないなら、止めるほうが安全です。
使っているかの確かめ方
端末で次を実行します。出てきたアドレスの末尾に「:5900・5901」があれば、その番号で接続を待っています。
ss -tln
この接続で今このPCを遠隔操作していますか。
遠隔操作中にこの手順を行うと、操作中の接続が切れて戻れなくなるおそれがあります。このPCの前で作業してください。
手順
始める前に:今 VNC でこのPCを操作しているなら、ここで止めて、このPCの前で作業してください。
管理者権限が必要
今の ufw の状態と、5900・5901番を接続元 Anywhere で許可している行がないかを見ます。
sudo ufw status numbered
管理者権限が必要
家のネットワーク 192.168.1.0/24 からだけ、5900・5901番への接続を許可します。必ず、広い許可を消す前・ufw を有効にする前に行います。
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5900
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5901
管理者権限が必要
手順2で見つけた、接続元が Anywhere の 5900・5901番の行を消します。sudo ufw delete のあとに、sudo ufw status numbered で出る行の番号を付けて実行します。消すたびに sudo ufw status numbered で見直します。
管理者権限が必要
手順2で ufw が有効になっていなかった場合だけ、ufw を有効にします。
sudo ufw enable
TigerVNC を使っている場合は、設定ファイルの securitytypes= の行や起動オプションの SecurityTypes に None が入っていれば消します。None はパスワードなしで入れる設定です。設定ファイルは、Ubuntu の tigervncsession では /etc/tigervnc/vncserver-config-defaults、/etc/tigervnc/vncserver-config-mandatory、~/.vnc/tigervnc.conf(ないときは ~/.vnc/config)、TigerVNC 公式の vncsession では ~/.config/tigervnc/config です。消したあと VNC サーバーを起動し直します。
ルーターの管理画面で、ポート開放(ポートフォワード)の設定に 5900・5901番の転送が残っていれば消します。画面はメーカーごとに違うため、ルーターの説明書を見てください。
もう一度 Pengolin で診断して、VNC の項目が出なくなったことを確かめます。
直したら、もう一度診断すると確かめられます
出典
- https://tigervnc.org/doc/Xvnc.html
- https://github.com/TigerVNC/tigervnc/blob/master/unix/vncserver/vncsession.man.in
- https://manpages.ubuntu.com/manpages/noble/man8/tigervncsession.8.html
- https://www.rfc-editor.org/rfc/rfc6143#section-7.2.1
- https://manpages.ubuntu.com/manpages/noble/man8/ufw.8.html
- https://manpages.ubuntu.com/manpages/noble/man8/ss.8.html
確認日:2026-11-03

