Câu trả lời:
Đối với một bộ định tuyến đơn giản, thực sự chỉ có hai bước cần phải được thực hiện.
Bước đầu tiên là cho phép định tuyến trong kernel. Theo mặc định, kernel bỏ các gói mà nó không nhận ra; một khi bạn kích hoạt định tuyến, nó sẽ chuyển tiếp chúng. Bạn cần đưa ra một trong hai lệnh này khi máy tính khởi động:
sysctl -w net.ipv4.ip_forward=1
echo 1 >/proc/sys/net/ipv4/ip_forward
Nhiều bản phân phối có một tệp được gọi /etc/sysctl.conf
, trong đó bạn có thể đặt dòng net.ipv4.ip_forward=1
để thực thi lệnh đó khi máy tính khởi động. Nếu có một thư mục /etc/sysctl.d
, bạn có thể thêm một tệp trong thư mục đó thay vì chỉnh sửa /etc/sysctl.conf
; gọi tập tin something.conf
.
Đối với IPv6, cài đặt tương ứng là net.ipv6.conf.all.forwarding
hoặc /proc/sys/net/ipv6/conf/all/forwarding
. Bạn cũng có thể sử dụng net.ipv4.conf.all.forwarding
hoặc /proc/sys/net/ipv4/conf/all/forwarding
cho IPv4.
Bước thứ hai là thiết lập các bảng định tuyến. Điều này có thể đơn giản hoặc phức tạp tùy thuộc vào mức độ bạn cần làm. Để sử dụng đơn giản, hãy định cấu hình từng địa chỉ và netmask của giao diện mạng của bạn và thêm bất kỳ tuyến bổ sung cần thiết nào bằng route
lệnh.
Nếu bạn cần viết lại các gói, lệnh cơ bản là iptables
( ip6tables
đối với IPv6). .
Đối với các thiết lập phức tạp, hãy xem ip
lệnh từ gói iproute2 .
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
và iptables --append FORWARD --in-interface eth1 -j ACCEPT
. Tôi đặt IP của máy khách của mình thành 192.168.30.10. Máy khách của tôi được kết nối với máy chủ linux thông qua eth1. Ok, khi tôi ping 192.168.30.1, nó ổn, nhưng tôi không thể kết nối với internet. (không thể ping google.com hoặc bất kỳ địa chỉ web nào khác). Tôi cũng đã viết DNS hợp lệ của mình trong /etc/resolv.conf. Bạn có thể giúp tôi về điều này? Cảm ơn.
8.8.8.8
không? Nếu có, bạn có một vấn đề DNS. Nếu không, bạn có một vấn đề kết nối IP; sao chép-dán đầu ra của ifconfig
, route -n
, iptables -nvL
và iptables -t nat -nvL
.
Đầu tiên hãy cắm IP của mạng mà bạn muốn đóng vai trò là bộ định tuyến. Có được nhiều thẻ giao diện mạng hoặc cấu hình một giao diện ảo.
Bạn cần kích hoạt chuyển tiếp gói từ /etc/sysctl.conf
và sau đó định cấu hình iptables cho NAT. Đây là một hướng dẫn ngắn gọn cho cùng.