用nginx做udp代理解决ntp被封的问题

本文介绍了解决NTP端口被运营商封掉的问题,通过使用nginx进行UDP端口转发,实现内网机器正常对时。具体步骤包括在内网机器上部署nginx的UDP转发配置,以及在服务器上配置将指定端口的UDP包转发回本地123端口。

NTP端口被运营商封掉了,导致内网的机器都不能正常对时,用tcpdump发现可以往外发包,收不到回应,

自己写了一个测试程序发现服务器端可以收到123端口的udp包,回应收不到,一定是被运营商拦截了。

http://blog.youkuaiyun.com/mtour/article/details/41073525

参考这边文章,重新编译了ntp相关服务,tcpdump时发现发送的源端口确实变了,但一样收不到回应,只有另想方法。


于是想办法换一下端口,用nginx做一下udp端口转发:

1.在内网机器上部署nginx的udp转发:

stream {
    upstream ntp_upstreams {
        server 47.93.x.x:8123;
    }


    server {
        listen 123 udp;
        proxy_pass ntp_upstreams;
    }
}

意思是把到达本机的123端口的upd包转发到 server 47.93.x.x:8123;

stream {
    upstream ntp {
       server 127.0.0.1:123;
                 }
    server {
        listen 8123 udp;
        proxy_pass ntp;
    }
}

在服务器上配置,吧8123端口的udp包转发到本地123端口,服务器要启动ntp服务。

这样,本地机器就做成了一个ntp桥接,但是本地这个机器使用ntpdate 127.0.0.1是不行的,因为会有123端口冲突,用其他本地机器访问这个机器的ip作为ntp服务就可以了。






### 如何查询 Nginx 占用的端口 在 Linux 中可以使用多种方法来查找 Nginx 正在监听哪些端口以及这些端口的状态。 #### 使用 `netstat` 命令 通过 `netstat` 可以查看所有正在监听的 TCP 和 UDP 端口,并过滤出由 Nginx 进程占用的信息: ```bash # 对于TCP连接 netstat -tunlp | grep nginx ``` 这条命令会显示所有与 Nginx 相关的监听中的网络连接及其绑定的本地地址和端口号[^3]。 对于特定类型的协议,比如只关心 HTTP(S) 流量通常走的 TCP 协议,则可以用更具体的选项组合: ```bash # 显示Nginx所监听的具体TCP端口 netstat -antp | grep ':80\|:443' | grep nginx ``` 这里假设 Nginx 主要工作在标准 Web 服务端口上 (HTTP 的 80 或 HTTPS 的 443),当然实际环境中可能还会涉及其他自定义设置过的端口如13599、13800等[^1]。 #### 利用 `ss` 工具替代 `netstat` 现代 Linux 发行版推荐使用更快捷高效的 `ss` 来代替传统的 `netstat` : ```bash ss -tnlp | grep nginx ``` 此命令同样能够列出所有被 Nginx 绑定用于监听外部请求的 IP 地址及对应端口号。 #### 探索 `/etc/nginx/conf.d/` 下配置文件 除了直接从运行状态中获取当前活动端口外,也可以查阅位于 `/etc/nginx/conf.d/default.conf` 文件内的配置项了解预设的服务端点。这有助于提前规划防火墙规则或是排查潜在冲突[^5]。 #### 结合 `lsof` 获取更多信息 如果想要获得关于某个具体端口更加详细的上下文信息,例如该端口关联到的确切可执行程序路径或 PID ,那么可以借助 `lsof` 实现这一点: ```bash sudo lsof -i :<port_number> ``` 将 `<port_number>` 替换成感兴趣的端口号即可得到相应结果集。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值