我正在尝试在运行 Ubuntu 18.04.3 LTS 的 Google 云服务器上设置服务器。我已经设置了一个 Apache 网站,能够访问它,并且能够从我的电脑 ping 它。我知道在我的服务器上运行的唯一服务器是 Apache 和 ssh。我可以关闭 Apache,但不能关闭 ssh,因为我正在使用 ssh 隧道进入服务器。
我尝试过的事情:
-关机+重启,很多次
-完全关闭 ufw
-允许 Google Cloud VPC 网络防火墙中的端口 25565
-将服务器 IP 留空(允许服务器启动但不允许服务器被外部访问)
-使用内部 IP 作为服务器 IP(与留空相同)
-更改端口号(留空相同)
-没有 Apache
Server.properties
除了服务器 IP 地址中包含我服务器的外部 IP 之外,其他与默认值相同。
$java -Xmx2048m -Xms2048m -jar server.jar nogui
[01:29:03] [main/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
[01:29:03] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[01:29:03] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
[01:29:03] [main/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
[01:29:03] [main/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[01:29:04] [Server thread/INFO]: Starting minecraft server version 1.15.1
[01:29:04] [Server thread/INFO]: Loading properties
[01:29:04] [Server thread/INFO]: Default game type: SURVIVAL
[01:29:04] [Server thread/INFO]: Generating keypair
[01:29:04] [Server thread/INFO]: Starting Minecraft server on 3X.X.X.X:25565
[01:29:04] [Server thread/INFO]: Using epoll channel type
[01:29:05] [Server thread/WARN]: **** FAILED TO BIND TO PORT!
[01:29:05] [Server thread/WARN]: The exception was: io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Cannot assign requested address
[01:29:05] [Server thread/WARN]: Perhaps a server is already running on that port?
[01:29:05] [Server thread/INFO]: Stopping server
[01:29:05] [Server thread/INFO]: Saving worlds
[01:29:05] [Server thread/ERROR]: Exception stopping the server
java.lang.NullPointerException: nullat net.minecraft.server.MinecraftServer.a(SourceFile:558) ~[server.jar:?]
at net.minecraft.server.MinecraftServer.r(SourceFile:586) ~[server.jar:?]
at wd.r(SourceFile:593) ~[server.jar:?]
at net.minecraft.server.MinecraftServer.run(SourceFile:688) [server.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232]
运行netstat -tulpen
显示如下:
$ netstat -tulpen
...
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 101 15881 -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 20363 -
tcp6 0 0 :::80 :::* LISTEN 0 18044 -
tcp6 0 0 :::22 :::* LISTEN 0 20374 -
udp 0 0 127.0.0.1:323 0.0.0.0:* 0 18018 -
udp 0 0 127.0.0.53:53 0.0.0.0:* 101 15880 -
udp 0 0 10.168.0.4:68 0.0.0.0:* 100 15668 -
udp6 0 0 ::1:323 :::* 0 18019 -
运行nmap -sV localhost
显示只有端口 22 和 80 开放,分别用于 ssh 和 http。
答案1
似乎有一项服务正在侦听指定端口。要终止在其上运行的任何程序,您可以使用:
kill $(sudo lsof -t -i:25565)
。
当然,最好知道在其上运行的程序,这样您就可以停止该服务以供将来启动。您可以通过运行以下命令查看哪些服务正在使用该端口:
lsof -i :port -S
。
如果服务在启动时运行,您可以使用此命令禁用它(当然要确保这样做是安全的):。
sudo systemctl disable <servicename>
正在使用该端口的服务的名称
在哪里。<servicename>