ssh快速入門
ssh快速入門
ssh是替代telnet的技術,最主要的特點是傳輸加密服務。
telnet的預設tcp埠是23,而ssh的tcp埠是22。
ssh埠轉發技術的作用
- 資料加密
- 突破防火牆的限制 ★
埠轉發的分類
- 本地轉發 (local forwarding)
- 遠端轉發 (remote forwarding)
- 動態轉發 (dynamic forwarding)
本地轉發
語法:
ssh -L [bind_address] port:host:hostport server_address
解析: L: Local host bind_address:如果省寫,則預設使用127.0.0.1,這時本地轉發只能對本機提供服務;如果使用bind_address,即使用一個固定的ip (可以是本臺機器上的一個網路卡的ip),則內網其他的人也可以使用這個地址進行埠轉發。注意這裡的使用ssh客戶端 port:開啟這個port埠,建議不要設定太 小,以免跟其他埠衝突, host:你想訪問資源的遠端主機ip hostport:那些資源對應的埠 server_address:可以跟host的ip相同,也可以不同。注意這裡使用ssh服務端
還有一些常用的選項: -N : 不執行命令,和-f配合使用 -f: 在後臺執行,不用登陸到遠端主機,即命令列顯示的還是本機內容。
示例:
1.
主機A:10.10.10.1
伺服器B:10.10.10.2
上面3臺機器可以互相訪問
我們可以使用A的ssh客戶端通過監聽7788埠,訪問B的80埠資源,跟B建立一個通道,可以使用下面的命令:
ssh -Nf -L 10.10.10.1:7788:10.10.10.2:80 10.10.10.2
其中的server_address可以是能夠訪問到B(10.10.10.2)的其他主機。
接下來,我們就可以使用本機瀏覽器的7788埠訪問到伺服器端,然後伺服器端訪問80埠。
2.繞過防火牆訪問主機
主機A:10.10.10.1
伺服器B:10.10.10.2
伺服器C:10.10.10.3
其中A和C之間有防火牆阻隔,導致A不能直接訪問C,但B可以訪問C,這裡我們就可以使用主機A通過B訪問到C:
ssh -Nf -L 7788:10.10.10.3:80 10.10.10.2 //注意寫法
我們沒有寫bind_address,這裡就預設使用127.0.0.1,我們通過B( 10.10.10.2)跟C(10.10.10.3)建立通道。
遠端轉發
遠端轉發和本地轉發本質沒有什麼區別,唯一不同的是,本地轉發是在本地開啟一個指定的埠,遠端轉發是在遠端開啟一個指定的埠,而且使用的命令選項也不同,遠端轉發使用-R。 命令:
ssh -R [bind_address]:port:host:hostport server_address
bind_address:這裡一定要注意的是遠端主機的ip port:遠端主機上面要開放的埠 host:你想讓它訪問的主機ip hostport:資源對應的埠 server_address:你想跟誰建立一個通道
示例
公司內網的主機A(10.10.10.10 )可以通過防火牆或路由器訪問外網,但一般情況下外網不可以直接訪問內網主機A。假如我們公司出差,想通過外網訪問到公司的主機A,這時我們就可以聯絡公司的同事,使用下面的命令讓內網A和外網主機(假設C)建立通道:
ssh -Nf -R 192.168.1.150:7788:10.10.10.10:80 192.168.1.150
這時,內網伺服器就和外網(192.168.1.150)建立好了連線,外網就可以通過這條連結訪問到內網的伺服器了,注意,這時的內網伺服器使用的還是ssh客戶端,而外網使用的是ssh伺服器。
動態埠轉發
特點:本地轉發和遠端轉發的共同特點是隻能訪問某一個主機上面的某一個資源(埠port),如果我們想訪問很多遠端主機上的資源的話,我們就可以使用動態轉發技術。 類似於代理伺服器 命令更加簡單:
ssh -D [bind_address:]port server_address
server_address:跟它建立通道。只要它能訪問各種資源,那麼我們就可以通過bind_address的port通過通道訪問server_address,進而訪問到server_address的資源了。 所以確實像一臺代理伺服器的效果了。
示例
主機A(10.10.10.10),不能訪問外網
主機B(10.10.10.20),可以訪問外網
這時,我們就能夠讓A和B建立一個通道,然後讓A可以訪問外網。 我們在A上設定命令:
ssh -Nf -D 10.10.10.10:7788 10.10.10.20
之後我們還需要在瀏覽器上設定一下代理,然後我們就能夠通過B訪問外網了。
相關文章
- 快速排序快速入門排序
- 《SSH 入門教程》釋出了
- 自學前端如何快速入門?怎麼快速入門前端?前端
- SQL快速入門 ( MySQL快速入門, MySQL參考, MySQL快速回顧 )MySql
- GitHub入門 設定SSH KeyGithub
- MySQL 快速入門MySql
- mysqlsla快速入門MySql
- Pipenv 快速入門
- Envoy 快速入門
- mongodb快速入門MongoDB
- Spark 快速入門Spark
- zookeeper 快速入門
- MQTT 快速入門MQQT
- Lumen快速入門
- Webpack快速入門Web
- RabbitMQ快速入門MQ
- QT快速入門QT
- makefile快速入門
- CSS快速入門CSS
- Markdown快速入門
- Docker快速入門Docker
- mybatis快速入門MyBatis
- Nginx快速入門Nginx
- TypeScript快速入門TypeScript
- TypeScript 快速入門TypeScript
- phpunit 快速入門PHP
- Zookeeper快速入門
- pipenv快速入門
- Thymeleaf【快速入門】
- WebSocket 快速入門Web
- React快速入門React
- vim快速入門
- JavaScript快速入門JavaScript
- 快速入門reactReact
- Express快速入門Express
- GitHub 快速入門Github
- Vue快速入門Vue
- Allure快速入門