↩️
LinuxでダミーのIPをローカルに付ける時のメモ
おはこんばんにちわ
狸です
さっそく本題ですがレガシーな開発をしていると以下のように設定ファイルで
hoge_server_ip=xxx.xxx.xxx.xxx
こんな風に直接商用のIPが書かれてるから、ローカルでテストする時にはlocalhostに設定しなおして、ローカルにダミーのサーバ建てて実行してね。
みたいな雑な指示をよく見かけます。
私は現在、開発環境を案件毎にWSL上に分けて構築しているので暇がある時ならIPを割り振ったDockerコンテナを動かして対応するのですが、ちょろっと動作確認する為だけの時は面倒臭いのでローカルにIPを生やして対応しています、これはその時のメモです。
やり方
さて早速実行するコマンドです
$ sudo ip link add deth0 type dummy
$ sudo ip link set dev deth0 up
$ sudo ip addr add xxx.xxx.xxx.xxx/xx dev deth0
やってる事は簡単で
- ダミーの仮想NIC
deth0
を生成 -
deth0
を有効化 -
deth0
に使いたいIPを追加
これでローカルからxxx.xxx.xxx.xxxへの通信はダミーのIF経由でローカルに繋がるので0.0.0.0等でListenしていれば通信が届くようになります。
ちなみに、最後のコマンドのIPを変えれば以下のように複数IPを割り振る事も簡単です。
$ sudo ip link add deth0 type dummy
$ sudo ip link set dev deth0 up
$ sudo ip addr add 123.123.123.123/24 dev deth0
$ ip a s deth0
3: deth0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 3a:14:b7:e5:46:c2 brd ff:ff:ff:ff:ff:ff
inet 123.123.123.123/24 scope global deth0
valid_lft forever preferred_lft forever
inet6 fe80::3814:b7ff:fee5:46c2/64 scope link
valid_lft forever preferred_lft forever
$ sudo ip addr add 123.123.123.124/24 dev deth0
$ ip a s deth0
3: deth0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 3a:14:b7:e5:46:c2 brd ff:ff:ff:ff:ff:ff
inet 123.123.123.123/24 scope global deth0
valid_lft forever preferred_lft forever
inet 123.123.123.124/24 scope global secondary deth0
valid_lft forever preferred_lft forever
inet6 fe80::3814:b7ff:fee5:46c2/64 scope link
valid_lft forever preferred_lft forever
尚、この設定は再起動で消えてしまうので永続化したい場合はディストリに従った永続化の設定を入れればいいんだけど、そこまでするかどうかをDocker化するかどうかの分水嶺として判断しています。
P.S.
NICを消したい場合は以下で消える
# sudo ip link add deth0
検証環境とかでDocker入れれないような場合にも使うんだけどインフラの領分と被るから確認出来たらすぐに消すようにしてる。
Discussion