java - 如何阻止客户端监听服务器或客户端正在监听的端口

标签 java linux tcp

有没有办法阻止 Linux 中端口上的消息(或以编程方式)?

假设我有一个服务器“S”和一个客户端“C”。如果客户端在 12345 上发送消息,Linux 命令会产生如下所示的结果:

 lsof -i | grep 12345

 java     52148 john.doe   26w  IPv6 1041861063      0t0  TCP  localhost:53413->localhost:12345 (ESTABLISHED)
 java     52164 john.doe    5u  IPv6 1041861064      0t0  TCP localhost:11400->localhost:12345 (ESTABLISHED)
 java     52164 john.doe   46r  IPv6 1041860804      0t0  TCP localhost:12345 (LISTEN)

有没有办法阻止客户端向服务器发送消息?或者有没有办法阻止客户端向服务器发送消息的端口(12345)?

最佳答案

控制对 TCP/IP 端口的访问是防火墙的责任。这是通过 iptables 完成的Linux 下。

例如,要停止与服务器的传入连接,请在运行服务器的计算机上使用以下命令。

/sbin/iptables -A INPUT -p tcp --destination-port 12345 -j DROP

要停止从服务器到客户端的传出连接,请使用

/sbin/iptables -A OUTPUT -p tcp --destination-port 12345 -j DROP

要在每个 IP 基础上执行此操作,请使用

/sbin/iptables -A OUTPUT -p tcp -d {ip_address} --dport 12345 -j DROP

哦,别忘了

/sbin/service iptables save

当你完成时。

关于java - 如何阻止客户端监听服务器或客户端正在监听的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36771594/

相关文章:

java - 为什么 hashmap Clear() 比指针重新分配释放更多的内存

linux - 如何在linux中的多个单词前添加一个字符

C++ FileIO Copy -VS- System("cp file1.x file2.x)

c++ - 小单元测试

java - 对于多人游戏场景,如何在客户端之间序列化更新消息?

java - 两个不同的套接字实例是否可以监听同一个 TCP 端口(端口已在使用中)

java - 遍历并发集合时的线程安全

java - 在 Akamai 中清除时出现相关问题

tcp - 客户端 channel 不处于可写状态(NIO)Netty

java - 在bukkit中获取json文件