Teknologian jakaminen

【Palvelin】Porttikartoitus

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina



1. Porttikartoituksen käsite

Porttikartoitus, joka tunnetaan myös nimellä Port Forwarding, on tekniikka, joka ohjaa tietovirran yhdestä verkkoportista toiseen verkkoporttiin. Tätä käytetään tyypillisesti palomuurin tai reitittimen takana toimiviin palveluihin, jolloin ulkoiset laitteet voivat käyttää tiettyjä palveluja sisäisessä verkossa. Porttikartoitus voidaan suorittaa paikallisverkon sisällä tai verkkojen välillä käyttämällä protokollia, kuten SSH.

1.1 Porttikartoitustyypit

  1. Paikallinen portin edelleenlähetys

    • Yhdistä paikallisen tietokoneen portti etäpalvelimen porttiin.
    • Esimerkki: Vaihda paikallinen portti8080yhdistetty etäpalvelimeen80porttia, jotta se voidaan kuljettaa paikallisestilocalhost:8080Käytä etäpalvelimen verkkopalvelua.
  2. Etäportin edelleenlähetys

    • Yhdistä etäpalvelimen portti paikallisen tietokoneen porttiin.
    • Esimerkki: Lisää etäpalvelin2222Porttikartoitus paikalliseen tietokoneeseen22porttia, jotta paikallisen tietokoneen SSH-palvelua voidaan käyttää etäpalvelimen kautta.
  3. Dynaaminen porttien edelleenlähetys

    • Luo SOCKS-välityspalvelin, jonka kautta useiden etäpalvelimien portteja voidaan käyttää dynaamisesti.
    • Esimerkki: Luo SOCKS-välityspalvelin, jonka avulla selain voi käyttää useita etäpalvelinsivustoja välityspalvelimen kautta.

1.2 Porttikartoituksen sovellusskenaariot

  1. Etäpääsy sisäisiin palveluihin: Porttikartoituksen avulla voidaan käyttää ulkoisesta verkosta tiettyjä yrityksen tai kotiverkon sisäisiä palveluita, kuten web-palvelimia, tietokantapalvelimia jne.

  2. Läpäise palomuuri: Porttikartoituksen avulla voit ohittaa palomuurirajoitukset ja käyttää palomuurin estämiä palveluita.

  3. Paranna turvallisuutta: Porttikartoitus SSH-tunnelin kautta voi salata tiedonsiirron ja parantaa turvallisuutta.

  4. Kuormituksen tasaus ja välityspalvelimet: Kuormanjakolaitteet ja välityspalvelimet käyttävät usein porttikartoitustekniikkaa liikenteen jakamiseen ja välittämiseen palvelun luotettavuuden ja suorituskyvyn parantamiseksi.

1.3 Esimerkki

Oletetaan, että etäpalvelimella on käynnissä verkkopalvelu, ja portti, jota se kuuntelee, on80 . Jotta voit käyttää tätä palvelua paikalliselta tietokoneeltasi, luo paikallinen porttikartoitus käyttämällä seuraavaa SSH-komentoa:

ssh -L 8080:localhost:80 user@remote-server
  • 1

Tämä komento muuttaa paikallisen tietokoneen8080Porttikartoitus etäpalvelimeen80 portti.Käytä sitä nyt paikallisella selaimellasihttp://localhost:8080, joka vastaa etäpalvelimen Web-palvelun käyttöä.

2. Miksi meidän on suoritettava porttikartoitus?

Porttikartoituksen (tai portin edelleenlähetyksen) tekemiseen kehityksen aikana on useita pääsyitä:

  1. Pääsy suojattuihin palveluihin: Jotkut kehityskoneen palvelut voivat kuunnella vain localhostilla (127.0.0.1 ) eikä niihin pääse suoraan ulkopuolelta. Satamakartoituksen avulla nämä palvelut voidaan paljastaa ja tehdä saataville ulkopuolelta.

  2. turvallisuutta : Portin edelleenlähetys SSH-tunnelin kautta mahdollistaa suojatun pääsyn sisäisiin palveluihin paljastamatta palvelua suoraan. SSH-tunneli salaa tiedonsiirron turvallisuuden lisäämiseksi.

  3. Helppo virheenkorjaus : Kehitysprosessin aikana kehittäjien on ehkä käytettävä useita kehityskoneessa käytäviä palveluita. Porttikartoituksen avulla näihin palveluihin pääsee suoraan paikalliselta ilman, että sinun tarvitsee joka kerta kirjautua sisään kehityskoneeseen.

  4. Ohita palomuuri tai verkkorajoitukset : Joissakin verkkoympäristöissä voi olla palomuurit tai verkkorajoitukset, jotka estävät suoran pääsyn kehityskoneen palveluihin. SSH-tunneloinnin avulla nämä rajoitukset voidaan ohittaa ja palveluihin päästään.

  5. Useiden käyttäjien pääsy: Jos useiden kehittäjien on käytettävä samaa palvelua, porttikartoituksen avulla jokainen kehittäjä voi käyttää palvelua omassa paikallisessa ympäristössään kirjautumatta sisään suoraan kehityskoneeseen.

esimerkiksi:

Oletetaan, että kehityskoneessasi on käynnissä Jupyter Notebook -palvelin, joka kuuntelee porttia 7860, mutta sallii vain paikallisen käytön. Seuraavan SSH-komennon avulla voit yhdistää kehityskoneen 7860-portin paikalliseen 7860-porttiin:

ssh -p 37367 [email protected] -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
  • 1

Tällä tavalla voit käyttää sitä paikallisella selaimellasi http://127.0.0.1:7860 tarkastella ja käyttää Jupyter Notebook -palvelinta kehityskoneellasi.

3. Periaate

3.1 [Kansankieli] Periaateselitys

Kehityskoneella on omansapaljastettu porttijaJulkinen IP, voidaan käyttää paikalliseen ssh-yhteyteemme

Mutta kehityskoneessa, eli palvelimessaSuorita ohjelmaMilloin, sen ohjelma on palvelimellatietyssä satamassaKäynnissä

Joten jos haluamme nähdä ohjelman käynnissä olevan vaikutuksen palvelimella paikallisesti, meidän on luotavaPorttikartoitus, kun selain avaa paikallisen portin, välitä se palvelimen porttiin tarkastelua varten.

3.2 Kaaviokaavio

Lisää kuvan kuvaus tähän

4. Koodi

ssh -p 37367 [email protected] -CNg -L {本地机器_PORT}:127.0.0.1:{开发机_PORT} -o StrictHostKeyChecking=no
  • 1

Esimerkiksi:

ssh -p 37367 [email protected] -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
  • 1

Tätä komentoa käytetään SSH-tunnelin luomiseen. Alla on yksityiskohtainen selitys jokaisesta osasta:

  • ssh: SSH-yhteyden käynnistämiseen käytetty komento.
  • -p 37367: Määritä etäisännän portin numero, johon haluat muodostaa yhteyden (portti 37367 tässä esimerkissä).
  • [email protected]: Käyttäjänimi (root) ja isäntänimi (ssh.intern-ai.org.cn).
  • -CNg: Vaihtoehtojen yhdistelmä:
    • -C: Ota pakkaus käyttöön.
    • -N: Pyydä SSH:ta olemaan suorittamatta etäkomentoja, vain porttiohjausta.
    • -g: Salli etäisäntien muodostaa yhteys edelleenlähetettyyn porttiin.
  • -L 7860:127.0.0.1:7860: Suorita paikallinen portin edelleenohjaus ja yhdistä paikallisen koneen portti 7860 etäisännän porttiin 7860 127.0.0.1.
  • -o StrictHostKeyChecking=no: Poista käytöstä isäntäavaimen tarkistus, joka estää interaktiiviset kehotteet, kun muodostat yhteyden ensimmäisen kerran.

Yhteenvetona tämä komento luo SSH-tunnelin paikallisen koneen ja etäisännän välille, välittää paikallisen portin 7860 etäisännän porttiin 7860, eikä suorita etäkomentoja tai tarkista isäntäavainta.

Kuten alla:
Porttikartoituksen jälkeen palvelimen portissa 7860 käynnissä oleva ohjelma tulee näkyviin.
Lisää kuvan kuvaus tähän