小编ari*_*kfr的帖子

如何使用 iptables 创建 UDP 代理

我有一台在端口 50000 上运行 UDP 服务器的服务器。该服务器接收来自客户端的更新,并每 5 秒将客户端 ping 回客户端连接到的套接字。

现在我想通过另一台服务器重定向进出该 UDP 服务器的所有流量。基本上我想在这台服务器前面设置一个透明代理。原因是我希望能够轻松控制哪个服务器处理 UDP 流量,而无需更改 DNS 设置。

起初我尝试使用 socat 创建这个代理:

socat UDP-LISTEN:50000,fork UDP:myserver:50000

但这对于传入流量似乎很有效,但是从我的服务器到客户端的返回流量没有到达目的地。此外,似乎 socat 为每个连接分叉了另一个进程,因此当客户端断开连接/切换 IP 时,我可能会遇到太多进程和死进程。

我意识到我可以为此使用 iptables NAT 功能,但它似乎对我不起作用。我试过的配置是:

sudo iptables -t nat -A PREROUTING -p udp --dport 50000 -j DNAT --to-destination myserver:50000

但它似乎不起作用——我什至看不到我服务器上的连接。我不确定是由于配置错误还是由于其他一些问题。

一些问题:

  1. 添加 nat 配置后,是否需要以某种方式重新启动 iptables?
  2. 我是否需要允许传入端口的流量或具有 NAT 设置就足够了?

更新:实际处理流量的服务器与我尝试在其上设置 iptables 的机器位于不同的机器上。

ubuntu proxy iptables udp

7
推荐指数
1
解决办法
1万
查看次数

如何获取在 Ubuntu 中打开的文件数?

我想知道是否有一些实用程序可以显示我在 Ubuntu 服务器上有多少打开的文件?

files ubuntu utility

6
推荐指数
1
解决办法
1万
查看次数

Postfix 虚拟域:如何接受除两个子域之外的所有子域?

假设我的 Postfix 服务器为域example.com提供服务,我希望它接受 example.com 的所有子域的邮件,但mail.example.comin.example.com 除外

起初,我尝试使用排除这两个子域的正则表达式:

(?(?!mail|in).+\.example.com)

但它没有用。我不确定问题是否出在正则表达式上,或者 Postfix 的正则表达式引擎是否不支持条件,所以我决定尝试使用表文件的条件。此时我的表看起来像这样:

/etc/postfix/virtual_domains:

if !/(in|mail)\.example\.com/
/.+\.example\.com/ OK
endif
Run Code Online (Sandbox Code Playgroud)

/etc/postfix/main.cf:

virtual_alias_domains = regexp:/etc/postfix/virtual_domains

但它也没有奏效。我究竟做错了什么?

virtualization postfix regex domains

4
推荐指数
1
解决办法
3537
查看次数

标签 统计

ubuntu ×2

domains ×1

files ×1

iptables ×1

postfix ×1

proxy ×1

regex ×1

udp ×1

utility ×1

virtualization ×1