مشکل در تونل ssh

سلام دوستان من با ssh یه تونل درست کردم

ssh -R 5000:0.0.0.0:5000 [email protected]

بعد وقتی داخل سرور توی لوکال هاست بهش ریکوست میزنم اوکی هستش

curl localhost:5000
curl 0.0.0.0:5000

ولی وقتی از طریق مرورگر با ip
سرور بهش ریکوست میزنم جواب نمیده
از چه طریق میتونم به ip رسور وصلش کنم
فایروال رو هم خاموش کردم باز هم جواب نداده

سلام و وقت بخیر

از اونجایی که محدوده کار شما مشخص نیست، من هر 2 روش رو مینویسم.


پیش فرض ها

  • کامپیوتر شما = سیستمی که ارتباط SSH را برقرار می کند (YOUR_PC = 10.10.0.1).

  • همسایه های شما = سیستم هایی که ارتباط شبکه محلی با کامپیوترهای شما دارند (YOUR_LAN).

  • سرور = سیستمی که به ارتباط SSH گوش می کند (SERVER = 10.20.0.1).

  • همسایه های سرور = سیستم هایی که ارتباط شبکه محلی با سرور دارند (SERVER_LAN).

در همه دستورها، 2 سوئئچ -vvv و -N استفاده می شوند اما اجباری نیستند.

رنج IP شبکه محلی شما: 10.10.0.0/24 (YOUR_LAN_IP).
رنج IP شبکه محلی سرور: 10.20.0.0/24 (SERVER_LAN_IP).


راه حل

2 حالت SSH tunnel وجود دارد که برای کار شما مناسب هستند.

حالت 1) Local forwarding

این حالت زمانی استفاده می شود که کامپیوتر شما و یا کامپیوترهای همسایه شما قصد وصل شدن به یک پورت خاص روی سرور را داشته باشند. فرض کنید پورت 5432 روی سرور فقط از طریق کامپیوتر شما قابل دسترس باشد و شما بخواهید این دسترسی را به همسایه های خود بدهید. در این صورت دستور به شکل زیر خواهد بود.

$ ssh -L YOUR_PC_PORT:SERVER_PORT -N -vvv [email protected]
$ ssh -L YOUR_PC_IP:YOUR_PC_PORT:SERVER_IP:SERVER_PORT [email protected]

مثال

اگر نیازی به اشتراک گذاری پورت با همسایه های شما وجود ندارد، این دستور را استفاده کنید.

$ ssh -L 5432:5432 -N -vvv [email protected]

اگر می خواهید به همسایه های خود نیز این دسترسی را بدهید، این دستور را استفاده کنید.
در این حالت شما تعیین می کنید که به چه پورت و IP بایند کنید.

$ ssh -L 10.10.0.1:5432:10.20.0.1:5432 -N -vvv [email protected]

حالت 2) Remote forwarding

این حلت زمانی استفاده می شود که بخواهید سرور یا همسایه های سرور به یک پورت از کامپیوتر شما یا همسایه های شما دسترسی داشته باشند. فرش کنید می خواهید ترافیک یک نرم افزار را از روی یک پورت خاص روی شبکه داخلی خود رد کنید و نمی خواهید نرم افزار روی سرور نصب شود.

اگر نرم افزار روی کامپیوتر شما نصب شده است، این دستور را استفاده کنید.
توجه کنید که SERVER_IP در این مثال ها اجباری نیست.

$ ssh -R SERVER_IP:SERVER_PORT:YOUR_LAN_IP:YOUR_PC_PORT -vvv -N [email protected]

مثال

$ ssh -R 8080:localhost:80 -vvv -N [email protected]

در این مثال اگر نرم افزاری از روی سرور بخواهد به پورت 8080 سرور دسترسی داشته باشد، به پورت 80 کامپیوتر شما متصل خواهد شد.

اگر نرم افزار روی یکی از کامپیوترهای همسایه شما نصب شده باشد، از این دستور استفاده کنید.

$ ssh -R 8080:YOUR_LAN_PC_IP:YOUR_LAN_PC_PORT -vvv -N [email protected]
$ ssh 8080:10.10.0.100:80 -vvv -N [email protected]
3 پسندیده

من از طریق داکر مشکل خودم رو حل کردم
حتماً راجبش مینویسم