Tạo port forwarding MikroTik
Liệt kê các cổng bạn muốn công khai và máy chủ phía sau chúng, rồi nhận rule dst-nat RouterOS v7, kèm hairpin NAT để máy khách trong LAN cũng dùng được địa chỉ công khai.
Chạy trong trình duyệt; những gì bạn nhập không rời khỏi thiết bị của bạn
Tạo cú pháp RouterOS v7 (cũng hợp lệ trên v6) cho IPv4. Cổng và địa chỉ được kiểm tra hợp lệ nhưng không được thử trên router của bạn. MikroTik và RouterOS là nhãn hiệu của SIA Mikrotīkls. Công cụ này độc lập, không liên kết với hay được MikroTik bảo trợ.
Cách chuyển tiếp một cổng trên router MikroTik
- Chọn cách rule nhận diện lưu lượng đến địa chỉ công khai của bạn: WAN interface list, một IP công khai cố định, hoặc bất kỳ địa chỉ nào của router.
- Thêm một dòng cho mỗi dịch vụ: giao thức, cổng công khai, IP của máy chủ nội bộ và, nếu khác, cổng nội bộ của nó.
- Đánh dấu hairpin NAT nếu máy khách trong LAN cần truy cập dịch vụ qua địa chỉ công khai, rồi sao chép tập lệnh hoặc tải xuống tệp .rsc.
Port forwarding hoạt động thế nào trên RouterOS
Port forwarding là một rule dst-nat trong chain dstnat của /ip firewall nat. Khi có kết nối mới khớp với rule (giao thức, cổng đích, và WAN interface hoặc địa chỉ công khai của bạn), RouterOS viết lại đích của nó thành địa chỉ, và có thể cả cổng, của máy chủ nội bộ. Connection tracking ghi nhớ phép chuyển đổi, nên phản hồi được viết lại ngược tự động; bạn không cần rule riêng cho lưu lượng trả về.
Việc chuyển đổi diễn ra trước khi forward chain của filter nhìn thấy gói tin. Đó là lý do rule forward mặc định của MikroTik chỉ chặn kết nối mới từ WAN khi có connection-nat-state=!dstnat: kết nối đã được rule dst-nat chuyển đổi sẽ được đánh dấu là dstnat và cho đi qua, còn mọi thứ khác từ internet đều bị chặn.
Hairpin NAT
Khi một máy tính trong LAN kết nối đến địa chỉ công khai của một máy chủ cũng nằm trong LAN, rule dst-nat chuyển gói tin đến máy chủ, nhưng máy chủ thấy địa chỉ riêng của máy khách và trả lời thẳng cho nó. Máy khách khi đó nhận phản hồi từ một địa chỉ mà nó chưa từng trao đổi và loại bỏ. Rule hairpin thực hiện masquerade lưu lượng từ subnet LAN đến máy chủ, để máy chủ trả lời router, và router chuyển phản hồi ngược lại. Cái giá là log của máy chủ sẽ hiện địa chỉ của router thay cho máy khách trong LAN. Một bản ghi DNS split-horizon trỏ tên miền về địa chỉ nội bộ sẽ tránh hẳn NAT và thường là cách sửa gọn hơn.
Mẹo
- Kiểm tra tường lửa của bạn có chặn đúng những gì cần chặn bằng Kiểm tra tường lửa MikroTik.
- Truy cập từ xa an toàn hơn qua VPN; Tạo WireGuard MikroTik dựng một VPN chỉ trong vài dòng.
- Cần giới hạn một chuyển tiếp cho nhiều mạng nguồn? Hãy lập danh sách bằng Tạo address list MikroTik.
Câu hỏi thường gặp
Vì sao tôi không truy cập được cổng đã chuyển tiếp từ bên trong LAN?
Máy khách LAN gửi đến IP công khai của bạn, router đổi địa chỉ đích sang máy chủ, và máy chủ trả lời thẳng cho máy khách vì cả hai cùng subnet. Máy khách lại chờ phản hồi từ IP công khai nên bỏ gói tin đó đi. Hairpin NAT thực hiện masquerade lưu lượng LAN-đến-LAN này để phản hồi quay về qua router. Cách này chỉ hoạt động khi rule dst-nat khớp theo địa chỉ công khai chứ không phải WAN interface, vì gói tin đi vào từ interface LAN.
Rule nên khớp theo in-interface hay dst-address?
Khớp theo WAN interface list là đơn giản nhất và vẫn dùng được khi IP công khai thay đổi, nhưng không làm được hairpin NAT. Khớp theo dst-address chạy được với hairpin nhưng phải cập nhật khi IP đổi. dst-address-type=local khớp mọi địa chỉ trên router, xử lý được cả IP động lẫn hairpin; điểm vướng là nó cũng bắt các cổng đó trên chính địa chỉ LAN của router.
Tôi có cần thêm rule firewall filter không?
Với cấu hình mặc định của MikroTik thì không: forward chain của nó chỉ chặn các kết nối mới từ WAN khi chúng "not DSTNATed", nên kết nối đã chuyển tiếp cổng vẫn đi qua. Nếu bạn viết forward chain chặt hơn, hãy accept connection-nat-state=dstnat trước rule drop cuối cùng.
Làm sao chuyển tiếp một dải cổng?
Nhập dải cổng, chẳng hạn 50000-50100, hoặc một danh sách như 80,443, và để trống cổng nội bộ. Các cổng được chuyển tiếp giữ nguyên. Việc đổi cổng (công khai 8443 sang nội bộ 443) chỉ áp dụng cho từng cổng đơn.
Chuyển tiếp RDP, SSH hay Winbox có an toàn không?
Công khai các dịch vụ truy cập từ xa ra toàn bộ internet sẽ dẫn đến các lần dò mật khẩu. Hãy điền các mạng nguồn được phép để giới hạn việc chuyển tiếp cho những địa chỉ đã biết, hoặc đặt dịch vụ sau một VPN như WireGuard.
Cấu hình của tôi có bị gửi đi đâu không?
Không. Các rule được tạo bằng JavaScript ngay trên trang này, và những gì bạn nhập không bị tải lên, lưu trữ hay ghi log.