![模擬 SSH 伺服器上的檔案設定錯誤,現在 ping、traceroute 和 Docker 無法在我的主機虛擬機器上運作。 (SSH、apt 和瀏覽器仍然有效。)](https://rvso.com/image/1703345/%E6%A8%A1%E6%93%AC%20SSH%20%E4%BC%BA%E6%9C%8D%E5%99%A8%E4%B8%8A%E7%9A%84%E6%AA%94%E6%A1%88%E8%A8%AD%E5%AE%9A%E9%8C%AF%E8%AA%A4%EF%BC%8C%E7%8F%BE%E5%9C%A8%20ping%E3%80%81traceroute%20%E5%92%8C%20Docker%20%E7%84%A1%E6%B3%95%E5%9C%A8%E6%88%91%E7%9A%84%E4%B8%BB%E6%A9%9F%E8%99%9B%E6%93%AC%E6%A9%9F%E5%99%A8%E4%B8%8A%E9%81%8B%E4%BD%9C%E3%80%82%20%EF%BC%88SSH%E3%80%81apt%20%E5%92%8C%E7%80%8F%E8%A6%BD%E5%99%A8%E4%BB%8D%E7%84%B6%E6%9C%89%E6%95%88%E3%80%82%EF%BC%89.png)
總而言之:在分配類別的虛擬機器上,退出與模擬虛擬機器的 SSH 會話後,ping 追蹤路由和用於存取 Docker 容器/模擬虛擬機器的原始腳本停止工作。該程式是從我的班級分配的主機虛擬機器中的 Docker 容器運行的。主機虛擬機器在 Ubuntu 上運作。
我需要修復 ping、traceroute 以及存取原始腳本和模擬虛擬機器的能力,以便修復學校分配的遠端桌面並繼續完成課堂作業。完全重置桌面環境並不能解決問題。 SSH 連接,瀏覽器工作,traceroute 運行,但結果是 30 個躍點,每個躍點有三個星號。
退出與模擬虛擬機器的 SSH 會話後,所有這些問題都會立即出現。有幾件事我還沒有縮小範圍(ARP 表和套接字介面——我明天會回來更新。)希望這至少能讓問題變得更加簡潔。
情境
我正在使用類別分配的虛擬機器進行工作,在退出用於在該類別分配的桌面環境上模擬另一個虛擬機器的程式時遇到了問題。以下詳細資訊是我正在做的家庭作業的一部分,並且全部是在原始班級分配的虛擬機器內的模擬虛擬機器中完成的。
我無法返回評估我在目標計算機中更改的確切文件和設置,因為用於在我的主機上設置模擬 SSH 伺服器/VM/Docker 容器的腳本未啟動。
以下是我在返回主機虛擬機器之前在模擬虛擬機器上所做的操作。
我建立了一個沒有主資料夾、root 權限、UID 和 GID 低於 1000 的使用者。
我將 sudoers 檔案配置為允許 root 存取而無需密碼。
我更改了該
sshd_config
檔案以允許 ssh 存取連接埠 22 以外的連接埠。sshd_config
在目標電腦上格式化檔案時,我犯了一個錯誤,用連接埠 2222 覆蓋連接埠 22。
這是透過在目前連接埠清單下新增額外的行來完成的,如下所示sshd_config
:
#Port 22
#Port 2222
當我去編輯文件時,22個連接埠被註解掉了,我能夠透過22埠存取目標機器,沒有任何問題,所以當時我沒有多想。
我不知道為什麼註釋連接埠仍然可以工作,而且我看不出這會導致我的主機虛擬機器目前遇到的問題。
我的主機虛擬機器上的連接埠已開啟且正在運作。
這可能是可以忽略不計的額外信息,但在進行這些更改並退出目標計算機後,我立即註意到主機上存在問題。在我開始與目標機器互動之前,這些問題並不存在。如果僅因不正確地進入或退出與 Docker 容器的 SSH 會話而引發問題,那麼這比將會話本身與當前問題聯繫起來更有可能解決。
Docker/啟動模擬虛擬機器的問題
在這種情況下,需要 Docker 來存取目標計算機,因為它是從腳本運行的 SSH 伺服器的模擬。如果沒有此功能,我將無法存取目標電腦並解決我在目標電腦中所做的更改如何與主機上的問題相關聯。
模擬的 VM 啟動訊息表明 Docker 正在運行,但它沒有啟動存取目標電腦所需的腳本。這是錯誤訊息:
應用程式未啟動。有問題。
嘗試重新啟動 VM,然後重新啟動 Docker。
然後再次運行該腳本。
重新啟動 Docker 不會變更此訊息的狀態,重新啟動也不會變更該訊息的狀態。或者重置機器。運行目標機器的腳本可能有問題,但我自己檢查後看不出有什麼問題,更不用說任何會擾亂我的主機虛擬機以至於完全重置無法解決問題的問題了。
Ping 和 Traceroute 問題
當我嘗試 ping 大多數 IP 時,它會在第一行停止,我必須手動退出該過程,因為我沒有收到失敗訊息。
使用ping -c 3 -w 12 1.1.1.1
限制 ping 請求的計數和截止時間顯示:
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
--- 1.1.1.1 ping statistics ---
12 packets transmitted, 0 received, 100% >packet loss, time 11249ms
我是能夠 ping localhost 和 127.0.0.1,並且 ping 0.0.0.0 運作正常。內部防火牆已停用,ICMP 已啟用。
當我使用範例介面 ping 命令時,ping -I interface google.com
我得到輸出
ping: SO_BINDTODEVICE interface: No such device
如果您有套接字程式設計的經驗,那麼您在這裡的建議將非常寶貴,因為我認為這可能是出現問題的地方。
Traceroute 運行,但唯一的輸出是 30 個躍點,每個躍點都顯示三個星號。
嘗試的解決方案
我本地計算機上的配置文件不反映我在目標計算機上記錄的配置文件更改,因此對目標計算機設置的任何篡改不應影響本地計算機,並且我沒有意外更改本地計算機上的配置認為這是目標機器。
我是能夠 ping localhost 和 127.0.0.1,並且 ping 0.0.0.0 運作正常。
內部防火牆已停用,ICMP 已啟用。
我對本機虛擬機器進行了完整的系統重置,但 ping、traceroute 和 Docker/模擬虛擬機器仍然出現故障。即使在完全系統重置後配置問題仍然卡住的事實讓我感到非常困惑,但可能會縮小原因範圍。是否存在系統設定或網路故障在整個系統重置後仍能保持一致?
我有虛擬機器的替代方案,但我仍然認為這是一個時間敏感的問題,因為我無法將備份虛擬機器用於某些專案。我將編輯問題,並在研究潛在選項時用我已經嘗試過的更多解決方案進行澄清。
尚未嘗試的潛在解決方案
套接字配置。
ARP表配置。
進一步調查模擬的虛擬機器啟動過程及其失敗的具體位置。
進一步調查為什麼儘管進行了完整的系統重置,問題可能仍然保持不變。
我不需要全面的答案,只需要指明正確的方向!明天繼續更新。還有很多事情要排除。
答案1
這個問題已經解決了,留給後人。主機虛擬機從未配置為正確運行 ping,我沒有考慮這一點,因為我正忙於嘗試可用於 ping 的不同故障排除角度,同時假設我已經破壞了配置文件中的一些基本內容。
我聯繫了課程的講師,他重置了主機虛擬機,修復了用於啟動模擬虛擬機的 Docker 容器,並且他澄清了 ping 和 Traceroute 的問題,因為它們是系統本身的一部分。
我稍後可能會問更多有關套接字程式設計的問題,但最終它與當前情況無關。