SSH Tunneling - Local & Remote Port Forwarding (by Example)
Talaan ng mga Nilalaman:
- Lokal na Port Pagpapasa
- Remote Port Pagpapasa
- Pagpaparami ng Port
- I-set up ang SSH Tunneling sa Windows
- Konklusyon
Ang SSH tunneling o pagpapasa ng SSH port ay isang paraan ng paglikha ng isang naka-encrypt na koneksyon ng SSH sa pagitan ng isang kliyente at isang server machine kung saan maaaring ma-relay ang mga serbisyo ng port.
Ang pagpasa ng SSH ay kapaki-pakinabang para sa transportasyon ng data ng network ng mga serbisyo na gumagamit ng isang hindi naka-encrypt na protocol, tulad ng VNC o FTP, pag-access sa nilalaman ng geo-restricted o bypassing intermediate firewall. Karaniwan, maaari mong ipasa ang anumang TCP port at lagusan ang trapiko sa isang ligtas na koneksyon sa SSH.
Mayroong tatlong uri ng pagpapadala ng SSH port:
- Lokal na Port Pagpapasa. - Ipasa ang isang koneksyon mula sa host ng kliyente sa host ng SSH server at pagkatapos ay sa patutunguhan ng host port.Remote Port Pagpapasa. - Ipasa ang isang port mula sa host ng server sa host ng kliyente at pagkatapos ay sa patutunguhan ng host port.Dynamic Port Pagpapasa. - Lumilikha ng SOCKS proxy server na nagbibigay-daan sa komunikasyon sa buong hanay ng mga port.
, pag-uusapan natin ang tungkol sa kung paano mag-set up ng mga lokal, liblib, at dynamic na naka-encrypt na mga tunnel ng SSH.
Lokal na Port Pagpapasa
Pinapayagan ka ng lokal na port pagpasa sa iyo upang maipasa ang isang port sa lokal (ssh client) machine sa isang port sa remote (ssh server) machine, na kung saan ay maipasa sa isang port sa patutunguhang makina.
Sa ganitong uri ng pagpapasa ng kliyente ng SSH ay nakikinig sa isang naibigay na port at lagusan ng anumang koneksyon sa port na iyon sa tinukoy na port sa liblib na SSH server, na pagkatapos ay kumokonekta sa isang port sa patutunguhang makina. Ang patutunguhang makina ay maaaring maging malayong SSH server o anumang iba pang makina.
Ang lokal na port pagpasa ay kadalasang ginagamit upang kumonekta sa isang malayong serbisyo sa isang panloob na network tulad ng isang database o server ng VNC.
Sa Linux, macOS at iba pang mga Unix system upang lumikha ng isang lokal na port na nagpapasa ng
-L
opsyon sa
ssh
client:
ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
Ang mga pagpipilian na ginamit ay ang mga sumusunod:
-
LOCAL_PORT- Ang lokal na ip ip at numero ng port. Kapag angLOCAL_IPay tinanggal sa ssh client na nagbubuklod sa localhost.DESTINATION:DESTINATION_PORT- Ang IP o hostname at ang port ng patutunguhang makina.SERVER_IP- Ang malayong SSH gumagamit at IP address ng server.
Maaari mong gamitin ang anumang numero ng port na higit sa
1024
bilang isang
LOCAL_PORT
. Ang mga numero ng port na mas mababa sa
1024
ay mga pribilehiyo na port at maaaring magamit lamang sa pamamagitan ng ugat. Kung ang iyong SSH server ay nakikinig sa isang port maliban sa 22 (ang default) gamitin ang pagpipilian na
-p
.
Ang hostname ng patutunguhan ay dapat malutas mula sa SSH server.
Sabihin nating mayroon kang isang MySQL database server na tumatakbo sa machine
db001.host
sa isang panloob (pribadong) network, sa port 3306 na maa-access mula sa machine
pub001.host
at nais mong kumonekta gamit ang iyong lokal na makina
mysql
client sa database server. Upang gawin ito maaari mong maipasa ang koneksyon na tulad nito:
ssh -L 3336:db001.host:3306 [email protected]
Kapag pinapatakbo mo ang utos, sasabihan ka upang ipasok ang malalawak na password ng SSH user. Matapos mong ipasok ito, mai-log in ka sa liblib na server at itatatag ang SSH tunnel. Mahusay na mag-set up ng isang SSH key-based na pagpapatotoo at kumonekta sa server nang hindi pumapasok sa isang password.
Ngayon kung ituro mo ang iyong kliyente ng database ng lokal na makina sa
127.0.0.1:3336
, ang koneksyon ay ipapasa sa
db001.host:3306
MySQL server sa pamamagitan ng
pub001.host
machine na kikilos bilang isang intermediate server.
Maaari mong ipasa ang maraming mga port sa maraming mga patutunguhan sa isang solong utos ng ssh. Halimbawa, mayroon kang isa pang MySQL database server na tumatakbo sa machine
db002.host
at nais mong kumonekta sa parehong mga server mula sa iyong lokal na kliyente na tatakbo mo:
ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]
Upang kumonekta sa pangalawang server ay gagamitin mo ang
127.0.0.1:3337
.
Kapag ang patutunguhan host ay pareho sa SSH server sa halip na tinukoy ang patutunguhan ng IP host o hostname maaari mong gamitin ang
localhost
.
Sabihin mong kailangan mong kumonekta sa isang malayong makina sa pamamagitan ng VNC na tumatakbo sa parehong server at hindi ito mai-access mula sa labas. Ang utos na gagamitin mo ay:
ssh -L 5901:127.0.0.1:5901 -N -f [email protected]
Ang pagpipilian na
-f
nagsasabi sa utos ng
ssh
na tumakbo sa background at
-N
hindi upang magsagawa ng isang malayong utos.
localhost
kami ng
localhost
dahil ang VNC at ang SSH server ay tumatakbo sa parehong host.
Remote Port Pagpapasa
Ang pagpapalayo ng malayong port ay kabaligtaran ng pagpapasa ng lokal na port. Pinapayagan ka nitong ipasa ang isang port sa remote (ssh server) machine sa isang port sa lokal (ssh client) machine, na kung saan ay maipasa sa isang port sa patutunguhang makina.
Sa ganitong uri ng pagpapasa ng SSH server ay nakikinig sa isang naibigay na port at lagusan ng anumang koneksyon sa daungan na iyon sa tinukoy na port sa lokal na kliyente ng SSH, na pagkatapos ay kumokonekta sa isang port sa patutunguhang makina. Ang patutunguhang makina ay maaaring maging lokal o anumang iba pang makina.
Sa Linux, macOS at iba pang mga Unix system upang lumikha ng isang malayuang port na nagpapasa ng
-R
pagpipilian sa
ssh
client:
ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
Ang mga pagpipilian na ginamit ay ang mga sumusunod:
-
REMOTE_PORT- Ang IP at ang numero ng port sa malayong server ng SSH. Ang isang walang laman naREMOTEnangangahulugan na ang malayong SSH server ay magbubuklod sa lahat ng mga interface.DESTINATION:DESTINATION_PORT- Ang IP o hostname at ang port ng patutunguhang makina.SERVER_IP- Ang malayong SSH gumagamit at IP address ng server.
Ang lokal na pagsulong sa port ay kadalasang ginagamit upang magbigay ng access sa isang panloob na serbisyo sa isang tao mula sa labas.
Sabihin nating bumubuo ka ng isang web application sa iyong lokal na makina at nais mong magpakita ng preview sa iyong kapwa developer. Wala kang isang pampublikong IP kaya hindi ma-access ng ibang developer ang application sa pamamagitan ng Internet.
ssh -L 8080:127.0.0.1:3000 -N -f [email protected]
Ang utos sa itaas ay gagawa ng ssh server upang makinig sa port
8080
at lagusan ang lahat ng trapiko mula sa port na ito patungo sa iyong lokal na makina sa port
3000
.
Ngayon ay maaaring i-type ng iyong kapwa developer
the_ssh_server_ip:8080
sa kanyang browser at i-preview ang iyong kahanga-hangang aplikasyon.
Pagpaparami ng Port
Pinapayagan ka ng dinamikong pagpapadala ng port na lumikha ka ng isang socket sa lokal (ssh client) machine na kumikilos bilang isang server ng SOCKS proxy. Kapag kumokonekta ang isang kliyente sa port na ito ang koneksyon ay maipasa sa remote (ssh server) machine, na kung saan ay maipasa sa isang pabago-bagong port sa patutunguhang makina.
Sa ganitong paraan, ang lahat ng mga application gamit ang SOCKS proxy ay magkakonekta sa SSH server at ipapasa ng server ang lahat ng trapiko sa aktwal na patutunguhan nito.
Sa Linux, macOS at iba pang mga Unix system upang lumikha ng isang pabago-bagong port na pagpapasa (SOCKS) ay ipasa ang
-D
opsyon sa
ssh
client:
ssh -D LOCAL_PORT SSH_SERVER
Ang mga pagpipilian na ginamit ay ang mga sumusunod:
-
LOCAL_PORT- Ang lokal na ip ip at numero ng port. Kapag angLOCAL_IPay tinanggal sa ssh client na nagbubuklod sa localhost.SERVER_IP- Ang malayong SSH gumagamit at IP address ng server.
Ang isang tipikal na halimbawa ng isang pabagu-bago ng port port ay ang lagusan ng web browser traffic sa pamamagitan ng isang SSH server.
Ang sumusunod na utos ay lilikha ng isang lagusan ng SOCKS sa port
9090
:
ssh -D 9090 -N -f [email protected]
Kapag naitatag ang tunneling maaari mong mai-configure ang iyong aplikasyon upang magamit ito. Ipinapaliwanag ng artikulong ito kung paano i-configure ang browser ng Firefox at Google Chrome upang magamit ang SOCKS proxy.
Ang port pagpasa ay dapat na hiwalay na isinaayos para sa bawat application na nais mong i-tunnel ang pag-iisip ng trapiko.
I-set up ang SSH Tunneling sa Windows
Ang mga gumagamit ng Windows ay maaaring lumikha ng mga lagusan ng SSH gamit ang PuTTY SSH client. Maaari mong i-download ang PuTTY dito.
-
Ilunsad ang Putty at ipasok ang SSH server IP Address sa
Host name (or IP address)patlang.




Ang isang bagong window na humihiling para sa iyong username at password ay lalabas. Kapag naipasok mo ang iyong username at password ay mai-log in ka sa iyong server at magsisimula ang SSH tunnel.
Ang pag-set up ng pampublikong pangunahing pagpapatunay ay magpapahintulot sa iyo na kumonekta sa iyong server nang hindi pumapasok sa isang password.
Konklusyon
Ipinakita namin sa iyo kung paano mag-set up ng mga lagusan ng SSH at maipasa ang trapiko sa pamamagitan ng isang ligtas na koneksyon sa SSH. Para sa kadalian ng paggamit, maaari mong tukuyin ang SSH tunnel sa iyong SSH config file o lumikha ng isang Bash alyas na magse-set up ng SSH tunnel.
seguridad ng sshSimple Port Forwarding Freebie Tumutulong sa Mga Router ng Home Gamitin ang Mga Online na Apps
I-configure ang iyong home router upang gumana nang maayos sa mga maselang application sa Internet, tulad ng mga laro.
Paano mag-setup ng ssh tunneling upang mai-bypass ang isang firewall
Ang isang firewall ay isang magandang bagay, ngunit kung pinipigilan ka mula sa paggawa ng isang bagay pagkatapos ang SSH Tunneling ay isang mahusay na pagpipilian upang galugarin.
Paano suriin ang pakikinig ng mga port sa linux (ginagamit ang mga port)
Ipinapaliwanag ng artikulong ito kung paano malaman ang mga port na ginagamit at kung aling mga serbisyo ang nakikinig sa kung aling mga port gamit ang netstat, ss at lsof na utos. Ang mga tagubilin ay naaangkop para sa lahat ng mga operating system na batay sa Linux at Unix tulad ng macOS.












