我在dmesg打开电脑大约半小时后收到这些错误:
[ 1355.677957] EXT4-fs error (device sda2): htree_dirblock_to_tree: inode #1318420: (comm updatedb.mlocat) bad entry in directory: directory entry across blocks - block=5251700offset=0(0), inode=1802725748, rec_len=179136, name_len=32
[ 1355.677973] Aborting journal on device sda2-8.
[ 1355.678101] EXT4-fs (sda2): Remounting filesystem read-only
[ 1355.690144] EXT4-fs error (device sda2): htree_dirblock_to_tree: inode #1318416: (comm updatedb.mlocat) bad entry in directory: directory entry across blocks - block=5251699offset=0(0), inode=2194783952, rec_len=53280, name_len=152
[ 1356.864720] EXT4-fs error (device sda2): htree_dirblock_to_tree: inode #1312795: (comm updatedb.mlocat) bad entry in directory: …Run Code Online (Sandbox Code Playgroud) 我想在 Linux 3.x(当前为 3.2.52,但我可以根据需要升级)上设置从 127.0.0.1、端口 4242 到 11.22.33.44、端口 5353 的 TCP DNAT。
看起来简单的 DNAT 规则设置不起作用,在 中telnet 127.0.0.1 4242挂起一分钟Trying 127.0.0.1...,然后超时。也许是因为内核正在丢弃返回的数据包(例如 SYN+ACK),因为它认为它们是火星的。我不需要解释为什么简单的解决方案不起作用,我需要一个解决方案,即使它很复杂(例如它涉及创建可能规则)。
我可以从127.0.0.0/8网络外的另一个本地 IP 地址设置通常的 DNAT ,但现在我需要 127.0.0.1 作为目标地址。我知道我可以设置用户级端口转发过程,但现在我需要一个解决方案,该解决方案可以使用iptables并且不需要辅助进程进行设置。
我在谷歌上搜索了一个小时。多次询问,但我找不到任何可行的解决方案。
还有很多关于 DNAT 到 127.0.0.1 的问题,但我不需要那个,我需要相反的。
请注意,单个iptables -j REDIRECT规则不起作用,因为我需要将传出数据包的 IP 地址从 127.0.0.1-j REDIRECT更改为 11.22.33.44,并且无法更改 IP 地址。