成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Fedora上使用SSH端口轉(zhuǎn)發(fā)

運(yùn)維 系統(tǒng)運(yùn)維
你可能已經(jīng)熟悉使用 ssh 命令訪問遠(yuǎn)程系統(tǒng)。ssh 命令背后所使用的協(xié)議允許終端的輸入和輸出流經(jīng)安全通道。但是你知道也可以使用 ssh 來安全地發(fā)送和接收其他數(shù)據(jù)嗎?一種方法是使用“端口轉(zhuǎn)發(fā)”,它允許你在進(jìn)行 ssh 會(huì)話時(shí)安全地連接網(wǎng)絡(luò)端口。本文向你展示了它是如何工作的。

[[280693]]

你可能已經(jīng)熟悉使用 ssh 命令訪問遠(yuǎn)程系統(tǒng)。ssh 命令背后所使用的協(xié)議允許終端的輸入和輸出流經(jīng)安全通道。但是你知道也可以使用 ssh 來安全地發(fā)送和接收其他數(shù)據(jù)嗎?一種方法是使用“端口轉(zhuǎn)發(fā)port forwarding”,它允許你在進(jìn)行 ssh 會(huì)話時(shí)安全地連接網(wǎng)絡(luò)端口。本文向你展示了它是如何工作的。

關(guān)于端口

標(biāo)準(zhǔn) Linux 系統(tǒng)已分配了一組網(wǎng)絡(luò)端口,范圍是 0 - 65535。系統(tǒng)會(huì)保留 0 - 1023 的端口以供系統(tǒng)使用。在許多系統(tǒng)中,你不能選擇使用這些低端口號(hào)。通常有幾個(gè)端口用于運(yùn)行特定的服務(wù)。你可以在系統(tǒng)的 /etc/services 文件中找到這些定義。

你可以認(rèn)為網(wǎng)絡(luò)端口是類似的物理端口或可以連接到電纜的插孔。端口可以連接到系統(tǒng)上的某種服務(wù),類似物理插孔后面的接線。一個(gè)例子是 Apache Web 服務(wù)器(也稱為 httpd)。對(duì)于 HTTP 非安全連接,Web 服務(wù)器通常要求在主機(jī)系統(tǒng)上使用端口 80,對(duì)于 HTTPS 安全連接通常要求使用 443。

當(dāng)你連接到遠(yuǎn)程系統(tǒng)(例如,使用 Web 瀏覽器)時(shí),你是將瀏覽器“連接”到你的主機(jī)上的端口。這通常是一個(gè)隨機(jī)的高端口號(hào),例如 54001。你的主機(jī)上的端口連接到遠(yuǎn)程主機(jī)上的端口(例如 443)來訪問其安全的 Web 服務(wù)器。

那么,當(dāng)你有這么多可用端口時(shí),為什么還要使用端口轉(zhuǎn)發(fā)呢?這是 Web 開發(fā)人員生活中的幾種常見情況。

本地端口轉(zhuǎn)發(fā)

想象一下,你正在名為 remote.example.com 的遠(yuǎn)程系統(tǒng)上進(jìn)行 Web 開發(fā)。通常,你是通過 ssh 進(jìn)入此系統(tǒng)的,但是它位于防火墻后面,而且該防火墻很少允許其他類型的訪問,并且會(huì)阻塞大多數(shù)其他端口。要嘗試你的網(wǎng)絡(luò)應(yīng)用,能夠使用瀏覽器訪問遠(yuǎn)程系統(tǒng)會(huì)很有幫助。但是,由于使用了討厭的防火墻,你無法通過在瀏覽器中輸入 URL 的常規(guī)方法來訪問它。

本地轉(zhuǎn)發(fā)使你可以通過 ssh 連接來建立可通過遠(yuǎn)程系統(tǒng)訪問的端口。該端口在系統(tǒng)上顯示為本地端口(因而稱為“本地轉(zhuǎn)發(fā)”)。

假設(shè)你的網(wǎng)絡(luò)應(yīng)用在 remote.example.com 的 8000 端口上運(yùn)行。要將那個(gè)系統(tǒng)的 8000 端口本地轉(zhuǎn)發(fā)到你系統(tǒng)上的 8000 端口,請(qǐng)?jiān)陂_始會(huì)話時(shí)將 -L 選項(xiàng)與 ssh 結(jié)合使用:

  1. $ ssh -L 8000:localhost:8000 remote.example.com

等等,為什么我們使用 localhost 作為轉(zhuǎn)發(fā)目標(biāo)?這是因?yàn)閺?remote.example.com 的角度來看,你是在要求主機(jī)使用其自己的端口 8000。(回想一下,任何主機(jī)通常可以通過網(wǎng)絡(luò)連接 localhost 而連接到自身。)現(xiàn)在那個(gè)端口連接到你系統(tǒng)的 8000 端口了。ssh 會(huì)話準(zhǔn)備就緒后,將其保持打開狀態(tài),然后可以在瀏覽器中鍵入 http://localhost:8000 來查看你的 Web 應(yīng)用。現(xiàn)在,系統(tǒng)之間的流量可以通過 ssh 隧道安全地傳輸!

如果你有敏銳的眼睛,你可能已經(jīng)注意到了一些東西。如果我們要 remote.example.com 轉(zhuǎn)發(fā)到與 localhost 不同的主機(jī)名怎么辦?如果它可以訪問該網(wǎng)絡(luò)上另一個(gè)系統(tǒng)上的端口,那么通常可以同樣輕松地轉(zhuǎn)發(fā)該端口。例如,假設(shè)你想訪問也在該遠(yuǎn)程網(wǎng)絡(luò)中的 db.example.com 的 MariaDB 或 MySQL 服務(wù)。該服務(wù)通常在端口 3306 上運(yùn)行。因此,即使你無法 ssh 到實(shí)際的 db.example.com 主機(jī),你也可以使用此命令將其轉(zhuǎn)發(fā):

  1. $ ssh -L 3306:db.example.com:3306 remote.example.com

現(xiàn)在,你可以在 localhost 上運(yùn)行 MariaDB 命令,而實(shí)際上是在使用 db.example.com 主機(jī)。

遠(yuǎn)程端口轉(zhuǎn)發(fā)

遠(yuǎn)程轉(zhuǎn)發(fā)讓你可以進(jìn)行相反操作。想象一下,你正在為辦公室的朋友設(shè)計(jì)一個(gè) Web 應(yīng)用,并想向他們展示你的工作。不過,不幸的是,你在咖啡店里工作,并且由于網(wǎng)絡(luò)設(shè)置,他們無法通過網(wǎng)絡(luò)連接訪問你的筆記本電腦。但是,你同時(shí)使用著辦公室的 remote.example.com 系統(tǒng),并且仍然可在這里登錄。你的 Web 應(yīng)用似乎在本地 5000 端口上運(yùn)行良好。

遠(yuǎn)程端口轉(zhuǎn)發(fā)使你可以通過 ssh 連接從本地系統(tǒng)建立端口的隧道,并使該端口在遠(yuǎn)程系統(tǒng)上可用。在開始 ssh 會(huì)話時(shí),只需使用 -R 選項(xiàng):

  1. $ ssh -R 6000:localhost:5000 remote.example.com

現(xiàn)在,當(dāng)在公司防火墻內(nèi)的朋友打開瀏覽器時(shí),他們可以進(jìn)入 http://remote.example.com:6000 查看你的工作。就像在本地端口轉(zhuǎn)發(fā)示例中一樣,通信通過 ssh 會(huì)話安全地進(jìn)行。

默認(rèn)情況下,sshd 守護(hù)進(jìn)程運(yùn)行在設(shè)置的主機(jī)上,因此只有該主機(jī)可以連接它的遠(yuǎn)程轉(zhuǎn)發(fā)端口。假設(shè)你的朋友希望能夠讓其他 example.com 公司主機(jī)上的人看到你的工作,而他們不在 remote.example.com 上。你需要讓 remote.example.com 主機(jī)的所有者將以下選項(xiàng)之一添加到 /etc/ssh/sshd_config 中:

  1. GatewayPorts yes #
  2. GatewayPorts clientspecified

第一個(gè)選項(xiàng)意味著 remote.example.com 上的所有網(wǎng)絡(luò)接口都可以使用遠(yuǎn)程轉(zhuǎn)發(fā)的端口。第二個(gè)意味著建立隧道的客戶端可以選擇地址。默認(rèn)情況下,此選項(xiàng)設(shè)置為 no

使用此選項(xiàng),你作為 ssh 客戶端仍必須指定可以共享你這邊轉(zhuǎn)發(fā)端口的接口。通過在本地端口之前添加網(wǎng)絡(luò)地址范圍來進(jìn)行此操作。有幾種方法可以做到,包括:

  1. $ ssh -R *:6000:localhost:5000 # 所有網(wǎng)絡(luò)
  2. $ ssh -R 0.0.0.0:6000:localhost:5000 # 所有網(wǎng)絡(luò)
  3. $ ssh -R 192.168.1.15:6000:localhost:5000 # 單個(gè)網(wǎng)絡(luò)
  4. $ ssh -R remote.example.com:6000:localhost:5000 # 單個(gè)網(wǎng)絡(luò)

其他注意事項(xiàng)

請(qǐng)注意,本地和遠(yuǎn)程系統(tǒng)上的端口號(hào)不必相同。實(shí)際上,有時(shí)你甚至可能無法使用相同的端口。例如,普通用戶可能不會(huì)在默認(rèn)設(shè)置中轉(zhuǎn)發(fā)到系統(tǒng)端口。

另外,可以限制主機(jī)上的轉(zhuǎn)發(fā)。如果你需要在聯(lián)網(wǎng)主機(jī)上更嚴(yán)格的安全性,那么這你來說可能很重要。 sshd 守護(hù)程進(jìn)程的 PermitOpen 選項(xiàng)控制是否以及哪些端口可用于 TCP 轉(zhuǎn)發(fā)。默認(rèn)設(shè)置為 any,這讓上面的所有示例都能正常工作。要禁止任何端口轉(zhuǎn)發(fā),請(qǐng)選擇 none,或僅允許的特定的“主機(jī):端口”。有關(guān)更多信息,請(qǐng)?jiān)谑謨?cè)頁中搜索 PermitOpen 來配置 sshd 守護(hù)進(jìn)程:

  1. $ man sshd_config

最后,請(qǐng)記住,只有在 ssh 會(huì)話處于打開狀態(tài)時(shí)才會(huì)端口轉(zhuǎn)發(fā)。如果需要長(zhǎng)時(shí)間保持轉(zhuǎn)發(fā)活動(dòng),請(qǐng)嘗試使用 -N 選項(xiàng)在后臺(tái)運(yùn)行會(huì)話。確保控制臺(tái)已鎖定,以防止在你離開控制臺(tái)時(shí)其被篡奪。 

責(zé)任編輯:龐桂玉 來源: Linux中國(guó)
相關(guān)推薦

2019-03-24 19:16:35

FedoraSSH系統(tǒng)運(yùn)維

2021-08-19 18:28:22

FedoraLinuxOpenCV

2017-03-23 12:38:49

2019-12-02 15:23:34

FedoraLinuxGIMP

2013-04-22 10:07:08

2020-07-20 18:30:44

Fedora 32DockerLinux

2022-09-22 16:21:43

開源GUI 應(yīng)用

2022-03-21 21:28:00

Homebrew包管理器Linux

2021-07-25 10:34:17

FedoraPodmanLinux

2020-08-16 09:00:15

樹莓派FedoraLinux

2022-12-03 16:02:51

2019-11-11 15:10:37

FedoraLinuxbash

2021-10-03 14:47:26

Fedora CoreGitHub Acti運(yùn)行器

2018-11-26 16:00:24

FedoraLinuxWindows游戲

2023-08-14 09:43:36

2011-03-17 14:26:45

iptables 端口

2017-10-10 12:40:13

SSHTCPOpenSSH

2022-11-10 07:41:00

sshLinux

2019-07-08 15:38:56

FedoraJupyter數(shù)據(jù)科學(xué)家

2024-01-01 18:52:35

軟件包ostree
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲风情在线观看 | 欧美成人一区二免费视频软件 | 日韩成人精品视频 | 国产日韩一区二区三免费高清 | 手机av在线 | 亚洲九九色 | 国产成人精品一区二区三区 | 亚洲国产黄色av | 国产在线精品一区二区 | 浮生影院免费观看中文版 | 国产综合在线视频 | 精品国产18久久久久久二百 | 国产精品久久久久久婷婷天堂 | 黄色大片免费看 | 亚洲视频一区 | 欧美精品一区二区三区四区五区 | 欧美成人激情 | 久久久91精品国产一区二区三区 | 欧美一级在线视频 | 成人av片在线观看 | 狠狠做深爱婷婷综合一区 | 亚洲精品久久久久avwww潮水 | 国产高清一区二区 | 欧美精品电影一区 | 日韩在线免费视频 | 免费在线看黄 | 日韩一二区 | 日韩在线一区视频 | 午夜视频免费在线 | 久久99精品国产 | 亚洲国产精品一区二区第一页 | 国产毛片久久久 | 天天狠狠| 一级电影免费看 | 中文字幕第一页在线 | 国产一区在线免费观看 | 有码一区 | 成人av大全 | 久久免费观看一级毛片 | 国产精品久久久久久久粉嫩 | 国产精品视频网站 |