我真的不明白不同端口之间的差异。我在网上找不到任何有用的资源,会详细介绍它。根据我的理解,它可以作为某种过滤器来阻止不使用相同端口号的任何其他请求。
在浏览器中输入网站时,如果有的话,我什么时候需要更改端口号?如果我在运行自己的网站怎么样?使用80端口时是否有任何风险?有没有办法使用不同的端口号来入侵网站?
由于简单邮件传输协议使用端口25,我可以使用这些知识使用自编程序发送电子邮件吗?
答案 0 :(得分:3)
根据约定和标准,定义的协议通常默认侦听已定义的端口。您可以将任何服务设置为侦听所需的任何端口,只需注意从标准端口更改意味着需要明确告知标准工具使用您的非标准端口。
例如,如果您运行Web服务器,那么默认情况下它可能正在侦听端口80.所以有人需要做的就是访问您的服务器是使用地址:
http://www.yourserver.com
但是,如果您将其更改为侦听非标准端口(例如81),那么任何想要访问您网站的用户都需要指定端口号:
http://www.yourserver.com:81
仅仅使用地址的标准惯例是不够的,因为你违反了惯例。现在,如果您不希望人们随意使用您的网站,并希望只有您告知端口号的人可以使用它,那么这很好。这被称为“通过默默无闻的安全”。它实际上并不以任何方式保护您的网站或过滤掉任何内容,只是为网站的使用增加了一个额外的步骤。
对于SMTP,是的,您可以编写程序连接到SMTP服务上的端口25并将数据发送到这些服务。您可能确实能够以这种方式欺骗电子邮件。但是,大多数服务都有其他内置的检查和平衡来防止这种欺骗。
答案 1 :(得分:1)
TCP / IP支持计算机上的2 ^ 16个端口。服务器程序被称为监听在特定端口上;其他机器使用端口号和机器名称联系机器上的服务器程序。这就像一封信上的地址。
某些端口号是“众所周知的”,这意味着它们被正式分配给特定服务:端口80用于Web服务器,端口25用于SMTP,端口25用于telnet
等。
但任何服务器都可以在任何端口上运行;这只是改变代码或配置的问题。有时你可能会在一台机器上运行两个独立的Web服务器;一个可能在端口80上侦听,第二个在另一个端口上侦听(8080是开发期间使用的服务器的常见选择。)
因此客户端无法将端口有意义地更改为某个随机数:必须在该端口上监听该端口,或者它不执行任何操作。
答案 2 :(得分:0)
从纯技术角度看,在任何端口号上运行Web服务器之间没有“差异”,只要客户端和服务器都知道要使用哪个端口。当客户端连接到服务器时,它必须知道IP地址和端口。
按照惯例,标准服务使用多个端口。例如,端口25是SMTP,端口80是http端口,22是ssh端口等。由于这些约定,操作系统保留小于1024的端口,并且只能由根进程打开。
除非有明确的原因,否则坚持使用标准端口号通常是个好主意。高级端口扫描程序/分析工具将尝试系统上的所有端口,因此在非标准端口上运行服务没有太大好处。
答案 3 :(得分:0)
端口号是通过IP链路多路复用通信的一种方式。这通常用于在接受的端口号上提供特定服务。已经为HTTP服务器分配了端口80以侦听传入的客户端连接,尽管这不是锁定 - 没有什么能阻止您构建/配置侦听端口9001或其他任何内容的HTTP服务器。如果您确实为服务器使用了非标准端口号,那么您必须专门指示浏览器连接到该端口,而不是像往常一样默认为80.
端口25中的SMTP使用您自己的程序 - 当然,您可以这样做。任何邮件应用程序都是开发人员自己的程序。
RGDS, 马丁