কিছু এপিআই ইন্টিগ্রেশন (ট্রোপো, পেপাল ইত্যাদি) পরীক্ষা করার জন্য আমি দূরবর্তী সার্ভার থেকে আমার স্থানীয় মেশিনে ওয়েব ট্র্যাফিক ফরোয়ার্ড করার চেষ্টা করছি। মূলত, আমি tunnlr.com যা সরবরাহ করে তার অনুরূপ কিছু সেটআপ করার চেষ্টা করছি।
কমান্ড দিয়ে আমি ssh টানেল শুরু করেছি
$ssh –nNT –R :7777:localhost:5000 user@server
তারপরে আমি দেখতে পাচ্ছি যে সার্ভারটি এখন 7777 পোর্টের সাথে শুনছে
user@server:$netstat -ant | grep 7777
tcp 0 0 127.0.0.1:7777 0.0.0.0:* LISTEN
tcp6 0 0 ::1:7777 :::* LISTEN
$user@server:curl localhost:7777
Hello from local machine
সুতরাং যে কাজ করে। কার্ল অনুরোধটি আসলে স্থানীয় মেশিন থেকে পরিবেশিত হয়।
এখন, আমি কীভাবে সার্ভার ডট কম সক্ষম করব?
আমি এরকমভাবে এনজিনেক্স ব্যবহার করার চেষ্টা করেছি:
upstream tunnel {
server 0.0.0.0:7777;
}
server {
listen 8888;
server_name server.com;
location / {
access_log /var/log/nginx/tunnel-access.log;
error_log /var/log/nginx/tunnel-error.log;
proxy_pass http://tunnel;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
}
Nginx ত্রুটি লগ থেকে আমি দেখতে পাচ্ছি:
[error] 11389#0: *1 connect() failed (111: Connection refused)
আমি চেষ্টা করার চেষ্টা করছি iptables
, কিন্তু কোন অগ্রগতি হয়নি। iptables
কেবল টানেলিংয়ের জন্য এনজিনেক্স চালানোর চেয়ে আরও মার্জিত সমাধানের মতো বলে মনে হচ্ছে। কোন সাহায্য ব্যাপকভাবে প্রশংসা করা হয়। ধন্যবাদ!
সম্পাদনা (সার্ভারের তথ্য যোগ করা)
সার্ভারের বিশদ: উবুন্টু ১০.১০ ম্যাভেরিক (স্ট্যান্ডার্ড ইনস্টল)
সম্পাদনা (এনগিনেক্স বিকল্প)
@ মার্সেল জি এর পরামর্শ অনুসারে এনজিঙ্ক্স বিকল্পগুলি 0.0.0.0:7777 দ্বারা 127.0.0.1:7777 এ পরিবর্তিত হয়েছে। এখনও নন-এনগিনেক্স সমাধান সন্ধান করছে।
সম্পাদনা (চূড়ান্ত সমাধান আপডেট)
@ এসসিউরাস যেমন উল্লেখ করেছেন, GatewayPorts yes
আপনার sshd_config ফাইলটিতে তা নিশ্চিত করুন। আমার প্রথমে কনফিগার ফাইলে এই লাইনটি ছিল, তবে এর /etc/init.d/ssh reload
পরিবর্তে আমার একটি ইস্যু করা দরকার restart
(কমপক্ষে এটি উবুন্টুতে মনে হয়)।
স্থানীয় মেশিনে ব্যবহৃত চূড়ান্ত কমান্ড:
ssh -nNT -R '*:8888:localhost:5000' user@server
তারপরে সার্ভারটি নির্দেশ করতে হবে যে এটি *: 8888 এর সাথে শুনছে lsof -i tcp:888
user@server:~$ sudo lsof -i tcp:8888
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 14711 user 8u IPv4 1791013 0t0 TCP *:8888 (LISTEN)
sshd 14711 user 9u IPv6 1791014 0t0 TCP *:8888 (LISTEN)
curl http://server.com:8888
, আমি ত্রুটি পাইcurl: (7) couldn't connect to host
। আমি এখনও লোকালহোস্টটি কার্ল করতে পারি: সার্ভারের শেল থেকে 8888 এবং এটি স্থানীয় মেশিনে আঘাত করে।