nsproxy 使用教程

nsproxy 使用教程

nsproxy Make arbitrary applications to use a specified SOCKS / HTTP proxy nsproxy 项目地址: https://gitcode.com/gh_mirrors/ns/nsproxy

1、项目介绍

nsproxy 是一个 Linux 专用的命令行工具,旨在使应用程序强制使用指定的 SOCKS5 或 HTTP 代理。它的功能类似于 tsocksproxychains-nggraftcp,但采用了完全不同的机制。nsproxy 通过创建一个 TUN 设备并在新的网络命名空间中启动应用程序,然后将 TUN 设备连接到用户模式的 TCP/IP 堆栈,并将连接重定向到命名空间外的代理服务器。由于利用了命名空间机制,nsproxy 不需要任何特权,并且不会影响其他进程。

主要特性

  • 支持 SOCKS5 和 HTTP 代理协议
  • 支持 TCP 和 UDP 协议
  • 内置 DNS 重定向
  • 适用于静态链接的应用程序
  • 无需特权

2、项目快速启动

安装

首先,克隆 nsproxy 项目到本地:

git clone https://github.com/nlzy/nsproxy.git
cd nsproxy

编译

使用 CMake 进行编译:

mkdir build
cd build
cmake ..
make

使用

编译完成后,你可以使用 nsproxy 来代理应用程序。以下是一些示例:

使用 SOCKS5 代理
nsproxy dig example.com A
使用 HTTP 代理
nsproxy -H curl example.com

常用选项

  • -H: 使用 HTTP 代理(默认使用 SOCKS5)
  • -s <server>: 代理服务器地址(默认值为 127.0.0.1
  • -p <port>: 代理服务器端口(默认值为 1080 用于 SOCKS5,8080 用于 HTTP)
  • -d <dns>: DNS 重定向选项
  • -v: 详细模式
  • -q: 静默模式

3、应用案例和最佳实践

案例1:在静态链接的应用程序中使用代理

某些应用程序是静态链接的,无法通过传统的 LD_PRELOAD 方法进行代理。nsproxy 可以完美解决这个问题,因为它不需要修改应用程序的运行环境。

nsproxy -s 192.168.1.100 -p 1080 my_static_app

案例2:在容器中使用代理

在容器化环境中,nsproxy 可以用于确保容器内的所有网络流量都通过指定的代理服务器。

docker run --network=none --privileged=true -v /path/to/nsproxy:/nsproxy my_container nsproxy -H curl example.com

最佳实践

  • 避免在特权模式下使用nsproxy 设计为无需特权,因此在非特权模式下使用可以提高安全性。
  • 配置 DNS 重定向:使用 -d 选项配置 DNS 重定向,以确保所有 DNS 请求也通过代理服务器。

4、典型生态项目

slirp4netns

slirp4netns 是一个用于无特权网络命名空间的用户模式网络工具。它与 nsproxy 类似,但更专注于网络命名空间的管理。

proxychains-ng

proxychains-ng 是一个用于强制应用程序使用代理的工具,类似于 nsproxy。它通过 LD_PRELOAD 机制实现,适用于大多数应用程序,但不适用于静态链接的应用程序。

graftcp

graftcp 是另一个用于强制应用程序使用代理的工具,类似于 nsproxy。它通过修改 libcconnect 函数实现,适用于大多数应用程序。

通过结合这些工具,你可以在不同的场景下实现更灵活的网络代理配置。

nsproxy Make arbitrary applications to use a specified SOCKS / HTTP proxy nsproxy 项目地址: https://gitcode.com/gh_mirrors/ns/nsproxy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田慧娉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值