受け側 Linux は、apt でインストール
sudo apt install iodine
抜ける側、ノートPCは brew でインストール
brew install iodine
サーバー側 idoned
iodined をサーバー側で起動 ( -d の d を忘れるミスに注意)
sudo iodined -f -P 7JOewIHrCKTZEaFg -d iodine0 -l 192.168.2.9 10.0.0.1 iodine.example.com
コマンド書式
sudo iodined -f -P <PASS> -d iodine0 -l <Listen> <ip> <dnsname>
DNS名は、名前解決のペイロードに、VPNを入れるので、dns名が必要
クライアント側 idone
クライアント側で iodineを起動
sudo iodine -f -P 7JOewIHrCKTZEaFg 126.93.36.233 iodine.example.com
2023-04-29
iodine を久しぶりに試したら、Inbound Port 53 Blocking / IP53B で53ポートへパケットが飛ばなくなっていた。通告なくポート塞がれるのは、プロバイダへの信頼が揺らぐ。
yahoo bb・ソフトバンク光 は ポートブロックに関して情報を開示してくれない。OP25Bは書いてあるが、IP53Bについては情報を掲載してないし、問い合わせても答えてくれない。表向きの回答は「個別ポートブロックや通信の監視を行いません。」だけど実際にやってるんだよなぁ。
しかも、広報を削除して平気なんですよね。
NAT 例
WAN_IP=$(ifstatus ybb | jsonfilter -e '@["ipv4-address"][0].address') iptables -t nat -A PREROUTING -m udp -p udp --dst $WAN_IP --dport 53 -j DNAT --to-destination 192.168.2.9:53
または、uci
で
root@OpenWrt:~# uci show firewall.@redirect[0] firewall.cfg133837=redirect firewall.cfg133837.target='DNAT' firewall.cfg133837.src='wan' firewall.cfg133837.dest='lan' firewall.cfg133837.proto='udp' firewall.cfg133837.dest_ip='192.168.2.9' firewall.cfg133837.dest_port='53' firewall.cfg133837.name='iodine-vpn' firewall.cfg133837.src_dport='53'
速度は、、、出ないですね。。。
takuya@~$ iperf3 -c 10.0.0.1 Connecting to host 10.0.0.1, port 5201 [ 5] local 10.0.0.2 port 57718 connected to 10.0.0.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 131 KBytes 1.07 Mbits/sec [ 5] 1.00-2.00 sec 2.11 KBytes 17.3 Kbits/sec [ 5] 2.00-3.00 sec 4.21 KBytes 34.4 Kbits/sec [ 5] 3.00-4.00 sec 2.11 KBytes 17.2 Kbits/sec [ 5] 4.00-5.00 sec 4.21 KBytes 34.5 Kbits/sec [ 5] 5.00-6.00 sec 2.11 KBytes 17.2 Kbits/sec [ 5] 6.00-7.00 sec 4.21 KBytes 34.6 Kbits/sec [ 5] 7.00-8.01 sec 2.11 KBytes 17.2 Kbits/sec [ 5] 8.01-9.00 sec 2.11 KBytes 17.3 Kbits/sec [ 5] 9.00-10.00 sec 4.21 KBytes 34.7 Kbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 158 KBytes 129 Kbits/sec sender [ 5] 0.00-22.13 sec 63.2 KBytes 23.4 Kbits/sec receiver iperf Done.
MASQUERADEで出ていく
サーバー側
- 10.0.0.0 は iodined で設定した トンネルネットワーク
- -o
は家庭内GWへ出ていく インターフェース
LAN_IF=br0 LAN_IP=192.168.2.5 IODONE_DEV=iodine0 IODINE_NET=10.0.0.0/24 sudo iptables -t nat -A POSTROUTING -s $IODINE_NET -o $LAN_IF -j MASQUERADE sudo iptables -A FORWARD -i $IODONE_DEV -o $LAN_IF -j ACCEPT
クライアント側
デフォルトゲートウェイを切り替える。
IODINE_DEV=iodine remote=10.0.0.1 ip=$( dig iodine.example.com +short ) LAN_IF=en0 ## ルーティングを追加して ip route add $ip dev $LAN_IF ## デフォルトルートを切り替える ip route default ip route add default via $remoe dev $IODINE_DEV
macOSで動かすとき
指定したutun tun2 デバイスを使う。
sudo iodine -f -d tun2 -P 7JOewIHrCKTZEaFg 126.93.36.233 iodine.example.com
SSHなら動く
SSHが使えるのなら、ある程度データ転送はできるかとおもう。4G LTE で通信制限を食らったくらいの速度(128kbps)程度は出るといいのだけど、30kbps 程度だしISDNにもテレホタイムにも勝てない。
公衆無線LANでは、DNS問い合わせを止めると証明書エラーになるので、DNSをストップすることはできない、極限状態でも外と通信ができるのがDNSである。恐ろしい。
Chromeで画像をオフにすると、ブラウジングもできる。
画像オフは流石に辛い。。。が