在程序中使用本地主机 TCP/IP 通信 - 总是安全的吗?

Eli*_*sky 5 networking windows linux firewall tcpip

我有一个应用程序,它被分成几个部分(进程),通过 TCP/IP 进行通信,使用本地主机上的预定义端口。

这总是安全的吗?某种防火墙(公司的、本地安装的、Windows 防火墙等)可以阻止此流量吗?或者操作系统中的某些用户设置是否可以阻止此流量?

我感兴趣的操作系统是 Windows(XP 到 7)和 Linux(Ubuntu、Red Hat Linux 和 SUSE)。

use*_*686 8

  • 流量127.0.0.0/8,并::1/128通过TCP / IP堆栈内部处理。它不会到达物理网卡,也不会离开计算机,因此无法被公司防火墙阻止。

  • 由于环回套接字对于 IPC 非常常见,好的防火墙不应该阻止它。(Windows 防火墙没有。)但是,也有一些过于偏执的......不过,在这种情况下,我会责怪防火墙,而不是你的软件。

  • 在 Unix 上,有可能(意外地)关闭环回接口(通常是lo)。同样,这是非常不寻常的。

  • socketpair()应在适用时使用而不是硬编码端口,以避免端口冲突。

  • 更好的是在 Linux 上使用 Unix 套接字,在 Windows 上使用命名管道。