找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
广告投放联系QQ68610888广告投放联系QQ68610888
查看: 7301|回复: 11

【求助】SMB端口转发后,外网可访问,内网访问不了

[复制链接]
发表于 2021-10-24 00:27 | 显示全部楼层 |阅读模式
本帖最后由 yu7398133 于 2021-10-24 00:54 编辑

先说问题:我使用端口转发将smb445端口转到44501,其中的NAT环回是已经启用的,但是好像没起到作用一样,外网可访问,内网访问不了。


同样是端口转发的其余功能,却又能正常使用,比如我路由器的端口80转发到2000,内网外网访问均正常,证明NAT环回是有用的。

路由器版本如下,使用下来很好用,不想重新刷新的版本了
https://www.right.com.cn/forum/thread-3197160-1-1.html

参考资料1:https://cloud.tencent.com/developer/article/1142156
也在网上寻找了使用iptables重新添加nat回环,但是好像也没作用,不知道是不是我写错了(这方面真的不在行),总之还是没起作用
下面是我写的,求大神帮忙看下有没有问题。10.147.21.1是网关。10.147.21.201是NAS服务器

iptables -t nat -A PREROUTING -s 10.147.21.0/24 -d 公网IP -p tcp -m tcp --dport 44501 -j DNAT --to-destination 10.147.21.201:445
iptables -t nat -A POSTROUTING -s 10.147.21.0/24 -d 10.147.21.0/24  -j SNAT --to-source 10.147.21.1



参考资料2:https://github.com/coolsnowwolf/ ... uecomment-751424989 /etc/sysctl.conf,这个文件没问题;/etc/sysctl.d/11-br-netfilter.conf这个文件我这里路由器路径下没得这个文件

起因:前几天想搞一下kodi的emby插件的远程公网访问,试用了webdav、ftp,都因为这两个在kodi下远程访问,均会产生地址变化,进而使emby生成的链接失效,而nfs不适合在公网上使用,因此最终只能选择smb。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
 楼主| 发表于 2021-10-24 00:43 | 显示全部楼层
我想了一下,如果能实现将 公网网址:44501 通过类似dns劫持,到 内网的10.147.21.201:445,应该也可以达成吧,但是这个不晓得该怎么去实现!!

点评

还想到了另一条方法,让我内网访问 网址:44501 这个网址端口的时候始终从外网进来,这个也不知道该怎么实现  详情 回复 发表于 2021-10-24 14:58
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2021-10-24 08:16 | 显示全部楼层
我也想不到有什么问题,猜测跟某些协议和端口有关系吧。
如果你的服务器可以切换smb的版本,建议从1、2、3分别切换下,看看有没有改善。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2021-10-24 08:19 | 显示全部楼层
没太懂,

内网的用户访问服务器,
根本不用经过路由器啊,
路由器设置或不设置端口转发,
不会影响内网的用户访问201上的smb服务啊!!!
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2021-10-24 08:22 | 显示全部楼层
难道你内网用户(软件)也是通过域名访问smb服务器的吗?
而不是通过(局域网)ip地址访问?

那么你在路由器的dnsmasq里设置一下域名欺骗(虚假解析)就行,把域名解析到内网ip地址就行了…

然后,设置smb的服务器的监听端口和外网监听端口一致…

点评

而实际上在外网上也确实实现了这个功能,但尴尬的是内网访问不了!! 用域名解析这个只能解析IP,我是需要IP和端口一起转过去,就是卡在这里了  详情 回复 发表于 2021-10-24 14:51
我是想使用emby的那个共享本地文件夹的功能,可以实现kodi的本地解码,而不是服务器解码, emby本地那个只能设置1个地址,要内外网都可以用,所以内外网都用的 网址:端口 这种来访问  详情 回复 发表于 2021-10-24 14:48
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2021-10-24 09:55 | 显示全部楼层
本帖最后由 avin4 于 2021-10-24 09:57 编辑

smb默认端口在很多客户端上是锁死的没法改动,如果你改了端口可能出问题。我也试过外网访问家里NAS,目前解决方法是:
1.直接ssh,用私钥加密,不过支持ssh私钥实时读取的媒体播放器很少,安卓端倒是可以用文件浏览器配合播放器
2.上微批恩,譬如wireguard,只要你op这边有公网地址,外网对端即使是公司内网也可以连上,有了微批恩环境两边就成局域网了,smb发现没问题。当然不管怎么说对传输带宽都有一定影响,不过这就是鱼与熊掌,公网访问就这样,当然wireguard需要kmod内核模块,你还是得重新编译固件。

点评

这个我现在外网已经实验成功了,按道理应该不是客户端的问题了 我想的是用emby配合kodi,实现内外网同步数据库,及播放进度,那不就爽了嘛!!  详情 回复 发表于 2021-10-24 14:54
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

 楼主| 发表于 2021-10-24 14:48 | 显示全部楼层
本帖最后由 yu7398133 于 2021-10-24 15:01 编辑
gaze 发表于 2021-10-24 08:22
难道你内网用户(软件)也是通过域名访问smb服务器的吗?
而不是通过(局域网)ip地址访问?

我是想使用emby的那个共享本地文件夹的功能,可以实现kodi的本地解码,而不是服务器解码,
emby本地那个只能设置1个地址,要内外网都可以用,所以内外网都用的 公网网址:44501  这种来访问
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

 楼主| 发表于 2021-10-24 14:51 | 显示全部楼层
gaze 发表于 2021-10-24 08:22
难道你内网用户(软件)也是通过域名访问smb服务器的吗?
而不是通过(局域网)ip地址访问?

而实际上在外网上也确实实现了这个功能,但尴尬的是内网访问不了!!

用域名解析这个只能解析IP,我是需要IP和端口一起转过去,就是卡在这里了
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

 楼主| 发表于 2021-10-24 14:54 | 显示全部楼层
avin4 发表于 2021-10-24 09:55
smb默认端口在很多客户端上是锁死的没法改动,如果你改了端口可能出问题。我也试过外网访问家里NAS,目前解 ...

这个我现在外网已经实验成功了,按道理应该不是客户端的问题了

我想的是用emby配合kodi,实现内外网同步数据库,及播放进度,那不就爽了嘛!!
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

 楼主| 发表于 2021-10-24 14:58 | 显示全部楼层
yu7398133 发表于 2021-10-24 00:43
我想了一下,如果能实现将 公网网址:44501 通过类似dns劫持,到 内网的10.147.21.201:445,应该也可以达成 ...

还想到了另一条方法,让我内网访问 网址:44501 这个网址端口的时候始终从外网进来,这个也不知道该怎么实现
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2021-10-24 22:43 | 显示全部楼层
yu7398133 发表于 2021-10-24 14:48
我是想使用emby的那个共享本地文件夹的功能,可以实现kodi的本地解码,而不是服务器解码,
emby本地那个 ...

举个栗子,

服务器在 192.168.1.2:44501 监听,
路由器做端口转发 44501到
192.168.1.2:44501
路由器的DNSMASQ里设置
yoursever.ddnsxxxxx.com 为192.168.1.2即可…

内网的软件访问域名:44501
就会直接到你的服务器
192.168.1.2:44501

外网的用户访问 yoursever.ddnsxxxxx.com:44501
同样会被你的路由器转发到你内网服务器的44501端口…

毫无问题。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2021-10-25 14:53 | 显示全部楼层
smb有两个端口,一个139,一个445,貌似你这个少了一个。
内网的机器直接使用内网地址不就行了,连端口都不用写。简单的问题复杂化
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /2 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2026-8-23 21:57

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 电话:13506125623

快速回复 返回顶部 返回列表