其实服务器端口转发的问题并不复杂,但是又很多的朋友都不太了解如何处理服务器端口常被占用的问题,因此呢,今天小编就来为大家分享服务器端口转发的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
一、设置路由器转发原则 时候 服务端口 和 IP 是什么
看后面的IP,都是你的IP的话所有服务都是作用于你的,80是HTTP就是我们上网的浏览器,tel是23,都是TCP协议,基本开这俩就行了至于内个53端口,是DNS的,不做配置也不影响,后面协议选ALL就可以了,如果不需要远程登陆的话,下面的常用端口用HTTP就可以了,一般都是作为WEB的服务器的
二、如何解决服务器80端口占用的问题
如果端口被占用,可以通过以下几种方式解决:
1.查找占用端口的进程并关闭它:可以使用网络工具或者命令行工具来查找占用端口的进程,然后关闭这个进程来释放端口。在Windows系统中,可以使用stat命令来查找占用端口的进程;在Linux系统中,可以使用lsof命令来查找占用端口的进程。
2.更改端口号:如果无法关闭占用端口的进程,可以考虑更改应用程序使用的端口号,以避免冲突。
3.配置端口转发:如果端口被占用,但无法使用上述方法解决问题,可以考虑使用端口转发技术,将流量从被占用的端口转发到其他可用端口。
以下是一个详细的例子,说明如何通过查找占用端口的进程并关闭它来释放端口:
假设应用程序需要使用端口8080,但是该端口已经被占用。我们可以使用以下步骤来查找占用该端口的进程并关闭它:
1.打开命令行界面(Windows系统可以使用cmd,Linux系统可以使用终端)。
2.输入以下命令来查找占用端口8080的进程(假设操作系统是Linux):
lsof-i:8080
这个命令会列出占用端口8080的进程信息,包括进程ID和进程名称等。
3.根据进程信息,使用kill命令关闭占用端口的进程。例如,如果占用端口8080的进程ID是12345,可以输入以下命令来关闭该进程:
kill 12345
这样,就释放了端口8080,应用程序可以正常使用该端口了。
总之,端口被占用时可以通过查找占用端口的进程并关闭它、更改端口号或者配置端口转发等方式来解决。具体解决方法可以根据实际情况选择最适合的方案。
三、Windows端口转发(Port Forwarding in Windows)
在Windows系统中,从XP开始就内嵌了一个设置网络端口转发的功能。依靠这个功能,任何到本地端口的TCP连接(ipv4或ipv6)都能够被转发到任意一个本地端口,甚至是远程主机的某个端口。并且,Windows系统并不需要去开启监听这个转发端口的服务。
在Windows服务器中,远程访问控制协议(RRAS)通常被用作端口转发,但是有一种更简单的配置方法,并且这种配置方法适用于windows的任意版本。
Windows系统下的端口转发使用portproxy模式下的sh命令,该命令的使用前提是要在管理员身份打开cmd进行执行。
sh interface portproxy add v4tov4 listenaddress=localaddress listenport= localport connectaddress=destaddress connectport=destport protocol= tcp
listenaddress–待连接的ip。
listenport–待连接的tcp本地端口。
connectaddress–待连接被转发的本地或远程主机的ip(支持域名)
connectport–从listenport转发到的tcp端口
sh interface portproxy add v4tov4 listenport=3340 listenaddress=10.1.1.110 connectport=3389 connectaddress=10.1.1.110
1) stat-ano| findstr:3340来验证3340端口是否正在监听中,如果该命令没有返回任何信息,或者说通过sh接口并没有实现端口转发的功能,那么需要查看下系统是否开启了iphlpsvc(ip Helper)服务。
2) tasklist| findstr 3340查看监听该端口的进程
3)检查防火墙是否关闭,如果关闭则跳过。如果打开需要手工配置相应的防火墙。
连接时请确保防火墙(Windows防火墙或者其他的第三方防护软件)允许外部连接到一个全新的端口,如果不允许,那么只能自行添加一个新的Windows防火墙规则,命令如下:sh advfirewall firewall add rule name=”forwarded_RDPport_3340” protocol=TCP dir=in localip=10.1.1.110 localport=3340 action=allow
当通过Windows防火墙接口为3340端口建立一个新的规则时,这个端口需要保证没有被任何程序占用,也就是说此端口仅供网络驱动使用。你可以创立任意的Windows端口转发规则,所有的sh接口下的端口代理规则都是永久的,并且储存在系统中(不受开机重启的影响)。
查看系统中的所有转发规则是否生效:
sh interface portproxy show all
查看端口转发的设置:sh interface portproxy dump
删掉一个特定的端口转发规则:
sh interface portproxy delete v4tov4
清空当前所有的配置规则:
sh interface portproxy reset
从远程主机来尝试连接这个新转发的端口3340,3340端口等同于原来的3389端口,连接的为10.10.1.110:3340。
注意:这些转发规则仅仅适用于TCP端口,对于UDP的端口转发,使用上面的方法是无效的。在配置规则时,不能将127.0.0.1作为连接。
1)通过一台windows机器端口转发到一台windows远程主机
sh interface portproxy add v4tov4 listenport=3340 listenaddress=10.1.1.110 connectport=3389 connectaddress=10.1.1.110
sh interface portproxy add v4tov4 listenport=3389 listenaddress=0.0.0.0 connectport=3389 connectaddress=192.168.100.101
2)通过一台ipv4的Windows机器转发到一台ipv6的服务器。
sh interface portproxy add v4tov6 listenport=3340 listenaddress=10.1.1.110 connectport=3389 connectaddress=ffff::66
1)在Windows Server 2012 R2中,端口转发规则有可能会在系统重启后被重置,在这种情况下,需要在网络协议中检查是否存在配置不当,导致网络的间断*断开,或者当系统重启时是否出现了ip的变换(推荐使用静态ip)。在一个工作组里,通常是在windows任务计划程序里添加了一个实现端口转发的脚本。
2)在Windows 2003/XP中,必须在注册表(HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters)中找到并设置IPEnableRouter参数为1才能实现端口转发。
3)防火墙规则检查
4)端口转发依赖的ip helper服务是否启动
5)端口转发是否生效
6) Windows7和WindowsServer2008R2安全事件的说明操作系统日志标识
Windows日志查看
6273网络策略服务器拒绝用户访问。
6274网络策略服务器放弃用户的请求。
4868证书管理器拒绝了挂起的证书请求。
4870证书服务吊销了证书。
4944当启动 Windows防火墙时,以下策略处于活动状态。
4945当启动 Windows防火墙已列出规则。
4946 Windows防火墙例外列表已更改。添加的规则。
4947 Windows防火墙例外列表已更改。修改规则的。
4948 Windows防火墙例外列表已更改。规则已被删除。
4949 Windows防火墙设置都恢复为默认值。
4950更改 Windows防火墙设置。
4951 Windows防火墙忽略规则,因为无法识别的主要版本号。
4952 Windows防火墙忽略规则的部分,因为无法识别它的次要版本号。将强制执行该规则的其他部分。
4953由于无法分析,Windows防火墙将忽略规则。
4954 Windows防火墙组策略设置已更改,并且未应用新设置。
4956 Windows防火墙更改活动配置文件。
5024 Windows防火墙服务已成功启动。
5025 Windows防火墙服务已停止。
5027 Windows防火墙服务无法从本地存储区中检索的安全策略。Windows防火墙将继续执行当前的策略。
5028 Windows防火墙无法分析新的安全策略。Windows防火墙将继续执行当前的策略。
四、如何处理服务器端口常被占用的问题
如果端口被占用,可以通过以下几种方式解决:
1.查找占用端口的进程并关闭它:可以使用网络工具或者命令行工具来查找占用端口的进程,然后关闭这个进程来释放端口。在Windows系统中,可以使用stat命令来查找占用端口的进程;在Linux系统中,可以使用lsof命令来查找占用端口的进程。
2.更改端口号:如果无法关闭占用端口的进程,可以考虑更改应用程序使用的端口号,以避免冲突。
3.配置端口转发:如果端口被占用,但无法使用上述方法解决问题,可以考虑使用端口转发技术,将流量从被占用的端口转发到其他可用端口。
以下是一个详细的例子,说明如何通过查找占用端口的进程并关闭它来释放端口:
假设应用程序需要使用端口8080,但是该端口已经被占用。我们可以使用以下步骤来查找占用该端口的进程并关闭它:
1.打开命令行界面(Windows系统可以使用cmd,Linux系统可以使用终端)。
2.输入以下命令来查找占用端口8080的进程(假设操作系统是Linux):
lsof-i:8080
这个命令会列出占用端口8080的进程信息,包括进程ID和进程名称等。
3.根据进程信息,使用kill命令关闭占用端口的进程。例如,如果占用端口8080的进程ID是12345,可以输入以下命令来关闭该进程:
kill 12345
这样,就释放了端口8080,应用程序可以正常使用该端口了。
总之,端口被占用时可以通过查找占用端口的进程并关闭它、更改端口号或者配置端口转发等方式来解决。具体解决方法可以根据实际情况选择最适合的方案。