Perforce 用戶端和伺服器不再連接,127.0.0.1:1666 拒絕伺服器上的所有連接,甚至本地連接

Perforce 用戶端和伺服器不再連接,127.0.0.1:1666 拒絕伺服器上的所有連接,甚至本地連接

我有一台運行 Ubuntu 伺服器 18.04 的伺服器,它是包羅萬象的本機伺服器 - 託管 samba 共享、媒體伺服器和 Perforce 伺服器。我透過本地網路 IP (ssl:192.xxx:1666) 連接到該倉庫。一切都進展順利,直到......

....我還嘗試向其中添加 wiki.js 安裝。有很多包和配置的顛簸。 Apache 被刪除,wiki.js / mongodb / mariadb / postgresql 都被丟掉並且不只一次被刪除,nginx 被安裝並多次被刪除。

這就是原因 - (我所做的事情的背景大概造成這個):

我透過 PiHole 對整個網路進行 DNS 過濾,並為該 Ubuntu 伺服器上的各個進程建立了本地 DNS 名稱和 CNAME 條目。我的想法是,我可以將網路中其他位置的客戶端電腦指向“perforce.RackServer.net”而不是“192.168.0.x:1666”,並透過 nginx 進行一些反向代理以獲得相同的結果。我們試圖讓位址變得易於閱讀,而不是每個人都必須向我詢問所有內容的 IP 和連接埠號碼。

我做到了不是nginx設定成功。現在已經卸載了。沒關係 - 我稍後再回來討論。問題就在這裡。

在這一切的某個地方,網路配置的某些部分(機器有 eth0 和 eth1)被破壞了,現在當我嘗試時 #sudo systemctl start helix-p4dctl.service

我明白了

Job for helix-p4dctl.service failed because the control process exited with error code.
See "systemctl status helix-p4dctl.service" and "journalctl -xe" for details.

systemctl 狀態檢查給了我:

Jun 20 14:10:07 RackServer p4dctl[4186]: error: Connect to server failed; check $P4PORT.
connect: 127.0.0.1:1666: Connection refused
Jun 20 14:10:07 RackServer p4dctl[4188]: error: Connect to server failed; check $P4PORT.
connect: 127.0.0.1:1666: Connection refused
Jun 20 14:10:07 RackServer p4dctl[4189]: error: Connect to server failed; check $P4PORT.
connect: 127.0.0.1:1666: Connection refused
Jun 20 14:10:07 RackServer p4dctl[4190]: error: Connect to server failed; check $P4PORT.
connect: 127.0.0.1:1666: Connection refused
Jun 20 14:10:08 RackServer p4dctl[4181]: error: 'PerforceServer' p4d: '/opt/perforce/sbin/p4d' exited with status 255.
Jun 20 14:10:08 RackServer p4dctl[4181]: Started 0 services.
Jun 20 14:10:08 RackServer p4dctl[4181]: error: Not all services started successfully.
Jun 20 14:10:08 RackServer systemd[1]: helix-p4dctl.service: Control process exited, code=exited status=1
Jun 20 14:10:08 RackServer systemd[1]: helix-p4dctl.service: Failed with result 'exit-code'.
Jun 20 14:10:08 RackServer systemd[1]: Failed to start LSB: Starts all Perforce services.

這與我現在嘗試使用 p4v 視覺客戶端遠端連線時遇到的錯誤類似:
Connect to server failed; check $P4PORT.
connect: 192.168.0.117:1666: Connection refused

檢查伺服器上的 P4PORT 環境變數給我:

……沒有什麼。它應該是 ssl:1666 或只是 1666。所以如果我把它設定為它應該的樣子

export $P4PORT=ssl:1666

然後嘗試啟動服務,我得到了與第一次相同的錯誤。

讓我們檢查一下實際連接...

admin@RackServer:~$ ping 192.168.0.117
PING 192.168.0.117 (192.168.0.117) 56(84) bytes of data.
64 bytes from 192.168.0.117: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from 192.168.0.117: icmp_seq=2 ttl=64 time=0.022 ms
64 bytes from 192.168.0.117: icmp_seq=3 ttl=64 time=0.017 ms

與以下相同: admin@RackServer:~$ ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.022 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.016 ms

和: admin@RackServer:~$ ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.054 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.018 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.014 ms

但是,nmap 不顯示 1666 開啟... 21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
3306/tcp open mysql
3389/tcp open ms-wbt-server

這裡是ifconfig,僅供參考。
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.117 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::da16:9fa8:aff2:2aef prefixlen 64 scopeid 0x20<link>
ether 00:04:23:d3:d0:92 txqueuelen 1000 (Ethernet)
RX packets 33063 bytes 2652752 (2.6 MB)
RX errors 0 dropped 2 overruns 0 frame 0
TX packets 1872 bytes 269690 (269.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 18 memory 0xb8820000-b8840000

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.116 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::659f:d321:8607:cc5f prefixlen 64 scopeid 0x20<link>
ether 00:04:23:d3:d0:93 txqueuelen 1000 (Ethernet)
RX packets 31082 bytes 2047269 (2.0 MB)
RX errors 0 dropped 2 overruns 0 frame 0
TX packets 531 bytes 41557 (41.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 memory 0xb8800000-b8820000

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 5185 bytes 278583 (278.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5185 bytes 278583 (278.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

我其實不是一個從事網路工作的人 - 而且我還在學習 *nix - 所以我有點難以理解,而且我讓 Perforce 倉庫重新上線。一切都在那裡,機器只是突然拒絕在 1666 上進行連接(遠端或本地),無論出於何種原因。所有其他一直正常工作的服務要么仍在工作,要么恢復工作。就這一個吧。

答案1

謎團終於解開了。

此 Perforce 安裝是 2021 年發布的版本,p4d/2021.2/LINUX26X86_64/2264565(我在日誌中發現了這一點)。在某些時候,已安裝的helix / p4 軟體包在apt-get 升級中被捕獲(它們不應該被捕獲,它們是手動下載和安裝.deb 軟體包),並將最新的2022 版本放在電腦上。

事實證明,最新的 Perforce Server 版本無法在舊機器上運行,或者可能無法在 Ubuntu 18.04 上運行。不管怎樣,安裝 2021 年初的版本都是有效的。而且,事實上,您可以將庫備份中的所有庫檔案拖放到新的空庫中,這樣就可以工作了。

我在命令列上度過的最令人困惑的 5 天。

相關內容