पोर्ट 80 को दूसरे पोर्ट पर कैसे करें?


39

मैं उसी लाइनक्स मशीन पर पोर्ट 80 पर दूसरे पोर्ट पर आने वाले अनुरोधों को कैसे अग्रेषित कर सकता हूं?

मैं इसे बदलकर करता था nat.conf, लेकिन यह मशीन जो मैं उपयोग कर रहा हूं उसमें NAT नहीं है। विकल्प क्या है?


कोई नेट नहीं है या सिर्फ nat.conf है? क्या आपने NAT का उपयोग करके किसी भी iptables नियमों की कोशिश की है?
बेन स्विनबर्न

जवाबों:


47

आप iptables के साथ पुनर्निर्देशन को पूरा कर सकते हैं:

iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

+1। वर्षों से ऐसा किया जा रहा है
अलेक्जेंडर पोगरेबनीक

1
विंडोज सर्वर पर कैसे?
ल्यूक

ओह यार यह वही है जिसकी मुझे तलाश थी, कुडोस!
न्यूरोसैप

पहली बार में मेरे लिए काम नहीं किया, लेकिन जब मैंने इस्तेमाल किया तो ठीक थाsudo
mdiscenza

1
क्या करना है अगर कोई eth0 इंटरफ़ेस? लूपबैक इंटरफ़ेस का उपयोग क्यों नहीं किया जाता है?
harschware

15

बस इस सवाल में अपने आप को पाया एक आसान तरीका नहीं मिल सकता है। इस सरल पोर्ट अग्रेषण को करने के लिए मेरी मशीन में Nginx स्थापित नहीं करना चाहते हैं।

Rinetdमेरे लिए काम नहीं किया, मेरे डिस्ट्रो के लिए कोई वर्किंग पैकेज नहीं। मैं socatइसके बजाय चला गया । सुपर सरल:

socat TCP-LISTEN:80,fork TCP:127.0.0.1:5000

suपोर्ट पर सुनने के लिए सक्षम होने के रूप में चलाया जाना चाहिए 80


मुझे लगता है कि Rinetd सेटअप आसान है
जॉनशेन ६४

समाज पूरी तरह से काम करता है!
विवि

10

आपको निगनेक्स जैसे रिवर्स प्रॉक्सी का उपयोग करना चाहिए । उदाहरण के लिए, आप अपनी फ़ाइल में ऐसा कुछ डाल सकते हैं:nginx.conf

server {
    listen         80;

    server_name    your_ip_address your_server_name

    access_log   /var/log/nginx/your_domain/access.log ;
    error_log    /var/log/nginx/your_domain/error.log info ;

    location / {
        proxy_pass  http://127.0.0.1:3000;   # pass requests to the destination
    }
}

2
क्यूं कर? मैं इस बात से असहमत नहीं हूं, लेकिन क्या कोई अच्छा कारण है कि आप नेटवर्किंग स्टैक में सिर्फ ™ होना नहीं चाहेंगे?
ओली

@ यह रिवर्स प्रॉक्सी विधि सर्वर पर कई अन्य वर्चुअल होस्ट को प्रभावित नहीं करेगी, जो तब होता है जब iptables यह होता है क्योंकि iptables को वर्चुअल होस्ट का कुछ भी पता नहीं होता है।
राख
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.