enp1s0
ラベルに仮想ネットワークインターフェイスを設定しましたenp1s0:0
。私はenp1s0
時々VPN接続を使用してインターネットに接続します。私のルータはSSHトラフィックを仮想インターフェイスに転送するので、VPNに接続している場合でもコンピュータにSSHで接続できるように仮想ネットワークインターフェイスIPを使用します。この設定は機能します。ただし、再起動すると、Ubuntu GUIネットワーク設定に移動し、仮想インターフェイスから「接続プロファイルを削除する」までインターネットはありません。。仮想ネットワークインターフェイスを復元しても、インターネットは引き続き機能します。私はRaspberry PiのDebianとUbuntu 22.04の両方でこの問題を経験したので、私が何か間違っていると思う傾向があります。
これは私の仮想ネットワークインターフェイスサービスです.
[Unit]
Description=establish virtual interface to bypass vpn with ssh
After=network.target
[Service]
SyslogIdentifier=ssh.vpn.bypass
Type=oneshot
RemainAfterExit=yes
ExecStart=/scripts/ssh.vpn.bypass/ssh.vpn.bypass.sh "192.168.1.113" --up
ExecStop=/scripts/ssh.vpn.bypass/ssh.vpn.bypass.sh "192.168.1.113" --down
[Install]
WantedBy=default.target
これが仮想ネットワークインターフェイスを設定する方法です。
ip addr add "$ip" dev "$ethname" label "$ethname":0
ip rule add from "$ip" table 431
ip route add default via "$dgateway" dev "$ethname":0 table 431
iptables -A INPUT -i tun0 -p tcp -m tcp --dport 51000 -j DROP
仮想ネットワークインターフェイスを有効にした状態で起動し、インターネットが引き続き機能できるようにしたいです。
編集する..
ip addr show
インターネットが正常に動作し、仮想インターフェイスが動作しているとき。
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether b0:41:6f:0c:2a:71 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.14/24 brd 192.168.1.255 scope global dynamic noprefixroute enp1s0
valid_lft 83694sec preferred_lft 83694sec
inet 192.168.1.113/32 scope global enp1s0:0
valid_lft forever preferred_lft forever
inet6 fe80::8ee7:418:adc1:499c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
ip route
default via 192.168.1.1 dev enp1s0 proto dhcp metric 100
192.168.1.0/24 dev enp1s0 proto kernel scope link src 192.168.1.14 metric 100
ip addr show
再起動後...
2: enp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether b0:41:6f:0c:2a:71 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.113/32 scope global enp1s0:0
valid_lft forever preferred_lft forever
ip route
再起動後、出力は表示されません。
編集する:
再起動sudo systemctl status ssh.vpn.bypass
後、私のスクリプトは取得しようとしたデフォルトゲートウェイのIPアドレスを取得できませんでした。再起動後も収集した接続dgateway="$(ip route | grep default | awk {'print $3'})"
には何も表示されませんでした。ip route
編集する:
nmcli connection show
再起動すると表示されます...
NAME UUID TYPE DEVICE
enp1s0 xxxx ethernet enp1s0
router.wired xxxx ethernet --
もしそうならnmcli connection up router.wired
…
NAME UUID TYPE DEVICE
router.wired xxxx ethernet enp1s0
満足できない解決策..
問題はブートシーケンスですが、これまでは推測ゲームでしたが、まともなことはありません。私は新しいアプローチを試み、起動時にサービスを無効にし、代わりにタイマーデバイスを使用し、すべてが期待どおりにOnBootSec=40
機能しました。サービスが開始され、期待される出力が返されるip route show
前に動作するインターネット接続を取得するために、どの依存関係が欠落しているかを知りたいです。