Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

使用虚拟机Openwrt作为路由,Docker不能上网

Featured Replies

我在虚拟机里面安装了openwrt,连接的br0,设置作为unraid的网关。

openwrt是作为二级旁路由,连接了的是同网段的上级路由

 

问题:Unraid自己可以正常上网,docker能ping通网关,但不能上网

请问有没有解决办法?

Edited by marc126

Solved by marc126

旁路由防火墙设置对吗?

  • Author

防火墙设置没有问题:

1、Unraid自己通过openwrt可以上网

2、局域网的其它机器可以通过openwrt上网

仅Unraid里面的docker不能上网

 

其它测试:

我把同样的openwrt部署在外面PVE中全部正常,就是在Unraid中虚拟机不行

 

21 minutes ago, 4dew said:

旁路由防火墙设置对吗?

 

检查unraid设置中网络设置和docker设置是否一个网段及网关,不存在这个情况在pve可以,unraid则行不通的问题。

  • Author

docker用的Bridge,应该默认就是用的unraid的网关

docker的shell能ping通网关,但出不去,而且traceroute能看到在openwrt节点后就断了

unraid的shell中ping和traceroute都正常

22 minutes ago, lyqalex said:

检查unraid设置中网络设置和docker设置是否一个网段及网关,不存在这个情况在pve可以,unraid则行不通的问题。

 

  • Author
  • Solution

解决了,在openwrt防火墙中加入:

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

猜测:应该是数据包回程的时候没有经过Openwrt网关,直接由一级网关回复给了请求者,然后unraid里面可能有没有把这种数据包转发给bridge中的docker。

不明白:为啥openwrt不部署在unriad虚拟机里面就没有这个问题。

我现在用的也是旁路由openwrt,不存在你说的问题,这只涉及你的硬路由器不转发你旁路由的包,你应该不是华硕路由器,另外pve部署openwrt也应该不可以被转发。

  • 3 months later...
On 5/2/2022 at 10:53 AM, marc126 said:

解决了,在openwrt防火墙中加入:

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

猜测:应该是数据包回程的时候没有经过Openwrt网关,直接由一级网关回复给了请求者,然后unraid里面可能有没有把这种数据包转发给bridge中的docker。

不明白:为啥openwrt不部署在unriad虚拟机里面就没有这个问题。

这是解决办法,需要注意网口的实际名称

  • 3 weeks later...

我也遇到这个问题了,谢谢你!

我也好奇这个问题是咋回事

  • 2 years later...
On 8/18/2022 at 1:51 AM, SkyZzzzz said:

这是解决办法,需要注意网口的实际名称

不好意思 刨坟了,我也遇到相同的问题了,可是现在的openwrt不能添加防火墙规则了,请问怎么解决?

  • 3 months later...

感谢,我也解决了。

我用的istoreos,输入ifconfig看到给配置的ip的接口名称是br-lan,iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE把里面的eth0换成了br-lan就可以了

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.