内网服务器添加共享文件夹功能并设置端口映射
内网服务器添加共享文件夹功能并设置端口映射
参考网址
https://blog.csdn.net/Think88666/article/details/118438465
1.服务器安装smb服务,由于网路安全不允许使用默认端口(445,446),于是修改端口为10445、10446。
2.每台需要共享的电脑都要修改端口映射,使用管理员权限打开windows power shell, 修改内容如下:
netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=62445 connectaddress=服务器ip
netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=62445 connectaddress=10.180.84.35
查看是否成功
netsh interface portproxy show all
显示如下信息则可以了(即监听了127.0.0.1的445端口)。
侦听 ipv4: 连接到 ipv4:
地址 端口 地址 端口
--------------- ---------- --------------- ----------
127.0.0.1 445 10.180.84.35 62445
重启电脑,通过以下命令查看
netstat -aon|findstr 445
若有以下信息并且PID不是4,则表示成功,这个PID是服务ip helper的。
TCP 127.0.0.1:445 0.0.0.0:0 LISTENING 3692
使用以下URL进行访问
W.0.0.1
异常情况处理:
重启电脑后通过
netstat -aon|findstr 445
查看,只显示以下信息则表示没有成功,
说明netsh interface portproxy add不生效
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
解决方法:
方法一:
win+r, 输入 services.msc, 找到 ip helper服务,然后双击打开,启动类型选择自动,再应用并启动它。
禁用本机server服务,在运行的先行停止,
测试中发现,当server服务停止时执行命令
netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=62445 connectaddress=10.180.84.35
再通过
netstat -aon|findstr 445
查看时,可以立即看到
127.0.0.1的445端口已经监听了,如果不禁用server服务的话就需要重启电脑才行。
方法二
权限不足:确保你有管理员权限来执行这个命令。
防火墙或安全软件:可能阻止了端口转发功能。
操作系统版本:某些版本的Windows可能不支持此功能。
方法三
服务未运行:"Internet Connection Sharing (ICS)" 和iphlpsvc(IP Helper)
在服务中启动它。
通过以上三种方法仍然不行的时候,则把127.0.0.1改为实际的电脑网卡IP,比如192.168.2.8
先执行
netsh interface portproxy reset
或者执行
netsh int ipv4 reset
删除原来的端口转发规则
然后执行
netsh interface portproxy add v4tov4 listenport=445 listenaddress=192.168.2.8 connectport=62445 connectaddress=10.180.84.35
通过
92.168.2.8
访问即可
还有可能是其他问题
禁用本机服务smphost( Microsoft Storage Spaces SMP)
停止运行server服务,原因是占用了445端口
防火墙放行445的入站连接
安装ipv6,可以不启用,
netsh interface ipv6 install
没有回环网卡
Routing and Remote Access
netsh interface portproxy add有时候行,有时候不行
netsh interface portproxy 是 Windows 命令行工具,用于设置网络地址转换(NAT)端口重定向。这个命令通常用于将一个端口上的流量重定向到另一台机器的端口上。如果你发现 netsh interface portproxy add 命令有时候可以执行,有时候不行,可能有几个原因和解决办法:
1. 权限问题
确保你以管理员权限运行命令提示符(右键点击“命令提示符”选择“以管理员身份运行”)。netsh 命令需要管理员权限才能正确执行。
2. 参数错误
检查你输入的命令参数是否正确。错误的参数或者格式会导致命令执行失败。例如:
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=192.168.1.100
确保所有的参数(如 listenport, listenaddress, connectport, connectaddress)都是正确的,并且符合你的网络配置。
3. 服务状态
确保相关的网络服务已经启动。特别是 Windows 的远程访问连接管理器服务(Remote Access Connection Manager)和 Windows 防火墙服务(Windows Firewall)需要运行。你可以在“服务”管理工具中检查这些服务的状态,并确保它们已启动。
4. 网络配置问题
检查你的网络接口是否正确配置。使用 netsh interface show interface 查看所有网络接口的状态,确保你想要配置端口转发的接口是启用且可用的。
5. 已有冲突的规则
如果之前已经设置了一个相同的端口转发规则,那么再次尝试设置相同的规则时可能会失败。使用 netsh interface portproxy show all 查看当前所有的端口转发规则,确认是否有冲突或重复的规则存在。如果有,可以使用 netsh interface portproxy delete v4tov4 listenport=80 listenaddress=0.0.0.0 来删除旧的规则,然后再尝试添加新的规则。
6. 系统更新和补丁
确保你的 Windows 系统是最新的。有时候,系统更新或补丁可以解决一些已知的问题,包括网络相关的问题。
7. 查看错误消息
仔细查看命令执行时的错误消息。Windows 会提供具体的错误代码或描述,这些信息对于诊断问题非常有帮助。例如,错误代码 1382 表示端口转发规则已存在。
通过上述步骤,你应该能够诊断并解决 netsh interface portproxy add 命令执行失败的问题。如果问题仍然存在,可以考虑在命令行中运行 netsh advfirewall firewall 查看防火墙规则,或者查看系统日志以获取更多线索。