Berdasarkan @olivervbk, jawaban di bawah adalah milikku!
Jalankan semua perintah sebagai "root".
Gunakan perintah ...
ip a
... untuk mengetahui nama antarmuka jaringan yang ingin Anda gunakan.
Jalankan perintah di bawah ini sebagai templat ...
ip netns add [INTERFACE_NAME]_ns
ip link set dev [INTERFACE_NAME] netns [INTERFACE_NAME]_ns
ip netns exec [INTERFACE_NAME]_ns ifconfig [INTERFACE_NAME] 10.1.1.10/24 up
ip netns exec [INTERFACE_NAME]_ns ifconfig lo 127.0.0.1/8 up
ip netns exec [INTERFACE_NAME]_ns route add default gw 10.1.1.1
ip netns exec [INTERFACE_NAME]_ns dhcpcd [INTERFACE_NAME]
ip netns exec [INTERFACE_NAME]_ns sudo -b -u [YOUR_USER] [APP_NAME] 2> /dev/null 1> /dev/null &
- [INTERFACE_NAME] - Ganti dengan nama antarmuka jaringan yang dipilih.
- [YOUR_USER] - Ganti dengan nama pengguna Anda.
- [APP_NAME] - Nama aplikasi yang akan dieksekusi di namespace "[INTERFACE_NAME] _ns". Misalnya: "firefox".
CATATAN I: Tanda "-b -u" pada perintah "sudo" memungkinkan aplikasi untuk berjalan menggunakan pengguna Anda (bukan "root") dan di latar belakang melepaskan terminal. The 2> /dev/null 1> /dev/null &
potongan adalah untuk mencegah output dari "[APP_NAME]" yang dicetak di terminal.
CATATAN II: Nilai-nilai ip "10.1.1.10" dan "10.1.1.1" adalah arbitrer.
CATATAN III: Untuk bekerja untuk saya, saya harus menjalankan dhcpcd [INTERFACE_NAME]
perintah.
Untuk menghapus namespace gunakan ...
ip netns del [INTERFACE_NAME]_ns
... atau...
ip -all netns delete
... untuk menghapus semua yang ada.