1. Koolshare端口转发
[本文图片均存在github上,如无法正常加载请用科学上网工具或者更改hosts, 更改host参考https://blog.csdn.net/ClownFeilong/article/details/111643164]
1.1. 配置步骤
![](https://i-blog.csdnimg.cn/blog_migrate/ac99baf5d7c342876d06415e710422a0.png)
依次打开 网络->防火墙->端口转发 选项卡
在这里可以配置端口转发选项,点击“添加”
![](https://i-blog.csdnimg.cn/blog_migrate/cb52d2afdfaa62b0a18e197374e490e1.png)
依次填写以下若干输入
- 名称:用于标志此转发
- 协议:一般三层上的转发勾选TCP和UDP就行,或者根据需求单单勾选TCP或者单单UDP也行
- 外部端口:转发之后的端口,用 ip:port 进行外部访问
- 目标区域:转发到哪里
- 内部地址:要转发出去的服务的内部监听IP
- 内部端口:要转发出去的服务的内部监听端口
点击保存之后再点击页面上的保存并应用即可使更改生效
1.2. 内部环回
将以上设置设置好之后从外部访问 wan_ip:port即可访问内部服务
但是从内部(局域网)内的机器访问还是访问不了
原因:内部环回
从局域网(192.168.1.x)内部访问 wan_ip 经过 NAT之后会直接从内网LAN达到目的端口,而不会
再走WAN
![](https://i-blog.csdnimg.cn/blog_migrate/b2ff0761804014eb6763743c79c19848.png)
从上图中可以看到 在koolshare端 监听LAN 能够看到对 koolshare 19000端口的请求, 而监听WAN则看不到任何关于19000端口的信息,说明内部局域网的包不会经过WAN网卡,而在LAN网卡直接交付,所以端口转发不起任何作用
所以,要开机NAT内部环回,使来自LAN口对19000的访问生效。
![](https://i-blog.csdnimg.cn/blog_migrate/d4c59a992be557d1e98f8fadd057d705.png)
开启之后,再来看一下效果
![](https://i-blog.csdnimg.cn/blog_migrate/aaf52c525b2558b87568d6ba4573c556.png)
可以看到局域网内部的Server端已经可以收到转发消息,但是为什么WAN口还是没有19000的相关包? 不能理解。 有一个可能是只是加了规则在LAN端收到请求包之后直接进行包构造,还是不走WAN。
这里环回源IP选内部还是外部的区别只是服务端接受到的包的源IP是WAN口还是LAN口的IP,区别并不大,实测都可以使用。
1.3. docker破坏内部环回
不知为何,在开启了docker的情况下,内部环回就会失效,网上有帖子说是docker的虚拟网卡的端口转发策略影响。 关掉koolshare酷软商店的docker之后就没有这个问题了。