Dựa vào câu trả lời @olivervbk dưới đây là của tôi!
Chạy tất cả các lệnh là "root".
Sử dụng lệnh ...
ip a
... Để tìm ra tên của giao diện mạng mà bạn sẽ muốn sử dụng.
Chạy các lệnh dưới đây làm mẫu ...
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] - Thay thế bằng tên của giao diện mạng đã chọn.
- [YOU_USER] - Thay thế bằng tên người dùng của bạn.
- [APP_NAME] - Tên của ứng dụng sẽ được thực thi trong không gian tên "[INTERFACE_NAME] _ns". Ví dụ: "firefox".
LƯU Ý I: Các cờ "-b -u" trong lệnh "sudo" cho phép ứng dụng chạy bằng người dùng của bạn (không phải "root") và trong nền giải phóng thiết bị đầu cuối. Các 2> /dev/null 1> /dev/null &
đoạn là để ngăn chặn đầu ra từ "[APP_NAME]" được in tại nhà ga.
CHÚ THÍCH II: Các giá trị của ip "10.1.1.10" và "10.1.1.1" là tùy ý.
CHÚ THÍCH III: Để làm việc cho tôi, tôi phải chạy dhcpcd [INTERFACE_NAME]
lệnh.
Để xóa không gian tên, hãy sử dụng ...
ip netns del [INTERFACE_NAME]_ns
... hoặc là...
ip -all netns delete
... Để loại bỏ bất kỳ thứ gì tồn tại.