Chuyển tiếp cổng trên Linux mà không có iptables?


34

Tôi có máy chủ Linux VPS (virtuozzo) và tôi cần thiết lập chuyển tiếp cổng, nhưng nhà cung cấp dịch vụ lưu trữ của tôi không cho phép các mô-đun hạt nhân iptables-nat vì vậy iptables -t nat- không hoạt động.

Tôi đang tìm cách khác để làm điều đó. Tôi biết tôi có thể chuyển tiếp cổng bằng openssh , nhưng tôi cần chuyển tiếp hơn 20 cổng khác nhau, tcp và udp để đây không phải là một tùy chọn.

Có phần mềm nào cho linux có thể chuyển tiếp cổng không?


huh câu hỏi hay +1. tôi không biết về một giải pháp, mong muốn xem liệu tehre có phải là một cái gì đó ở đây không.
Shurrican

Và sau đó, một chương trình cho phép bạn chuyển tiếp các cổng đến các đích khác nhau dựa trên IP nguồn thì sao?
dpk

Tránh vấn đề hoàn toàn bằng cách không bao giờ sử dụng VPS dựa trên Virtuozzo / OpenVZ.
Michael Hampton

@MichaelHampton: Không cực kỳ mang tính xây dựng ...
Nicolas Raoul

Câu trả lời:


47

Sử dụng công cụ gọi là "socat", nó là công cụ tuyệt vời cho những thứ như vậy và nó đã được đóng gói trong nhiều bản phân phối linux. Đọc về nó ở đây: http://www.dest-unreach.org/socat/doc/README

Ví dụ chuyển tiếp cổng với socat:

socat TCP4-LISTEN:80,fork TCP4:www.yourdomain.org:8080

Điều này chuyển hướng tất cả các kết nối TCP trên cổng 80 đến www.yourdomain.org cổng 8080 TCP.


Đừng quên https mặc định trên cổng 443, thay vì cổng 80 :)
keiki

Socat là công cụ duy nhất hoạt động với tôi trên một quả mâm xôi chỉ có ipv6
chotchki

Hoàn hảo, giải quyết vấn đề của tôi ngay lập tức. Lưu ý, bạn cần đảm bảo rằng cổng đến được mở trong iptables nếu bạn có như vậy.
jancha

13

Có một chương trình tài nguyên ánh sáng nhỏ được gọi redirlà cấu hình khá.

apt-get install redir trên các bản phân phối dựa trên Debian.


Tôi đã sử dụng công cụ này trong quá khứ và nó hoạt động rất tốt ...
Alex

Tôi thứ hai công cụ này. Có vẻ như đây không phải là một công cụ chuyển tiếp gói, mà là đường hầm tcp. Nó sẽ thay đổi địa chỉ IP nguồn được nhìn thấy bởi mục tiêu. Vì vậy, nó hoạt động rất tốt khi bạn cần chuyển hướng một cổng sang máy tính khác có thiết lập định tuyến khác.
scegg


6

xinetdhỗ trợ một thuộc tính redirect sẽ làm những gì bạn muốn. Như những người khác đã lưu ý, có một số chương trình xử lý các chuyển hướng.

Sử dụng xinetdhoặc chương trình khác sử dụng tcpwrappersthư viện sẽ cho phép bạn áp dụng các hạn chế truy cập nếu và khi cần thiết.


4

xinet / inetd. Ví dụ:

chuyển hướng

Cho phép dịch vụ tcp được chuyển hướng đến một máy chủ khác. Khi xinetd nhận được kết nối tcp trên cổng này, nó sẽ tạo ra một quá trình thiết lập kết nối đến máy chủ và số cổng được chỉ định và chuyển tiếp tất cả dữ liệu giữa hai máy chủ.

http://linux.die.net/man/5/xinetd.conf


Trông có vẻ thú vị, nhưng nó chỉ giới hạn ở TCP như bạn đã nói
Doud

4

Tôi tìm thấy tiện ích nhỏ gọi là portfwd http://portfwd.sourceforge.net/ nó thực hiện chính xác những gì tôi cần (chuyển tiếp TCP và UDP), trang chủ cho biết nó được cập nhật lần cuối vào năm 2002, nhưng bản phát hành mới nhất là 2007 và nó hoạt động trên kernel 2.6 .


Tôi sẽ chấp nhận câu trả lời của tôi vì đây là phần mềm duy nhất hỗ trợ đầy đủ cả giao thức TCP và UDP.
troex

3

SSH Có chuyển tiếp cổng không, miễn là bạn có thể tạo đường hầm trong kết nối SSL.


-3

Ok đây là câu trả lời đơn giản nên hoạt động, đó không phải là khoa học tên lửa mà hầu hết mọi người đều phức tạp hóa câu trả lời và nhầm lẫn tất cả những điều mới đối với người dùng Linux.

ufw cho phép 2xxx

2xxx = số cổng của bạn chỉ cần nhập lệnh đó vào thiết bị đầu cuối máy chủ của bạn và cổng mong muốn của bạn được mở ra.


Nó chỉ mở cổng trên các giao diện đối diện bên ngoài máy chủ. Nó không chuyển hướng hoặc chuyển tiếp cổng từ ip này sang ip khác. NÓ HOẠT ĐỘNG CẢNG.
AmirHossein
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.