Sign inSign up

tonysun0319/naive

By tonysun0319

•Updated over 3 years ago

Image
6

300

tonysun0319/naive repository overview

原理如图:

⁠1、在常见的Linux系统中部署:

请用macvlan方式,并给docker指定ip。需要赋予特殊权限 例如: docker run -d --name naive --network macvlan --ip 192.168.2.60 --cap-add=NET_ADMIN --cap-add=NET_RAW tonysun0319/naive:latest

⁠2、在 routeros中使用:

在ros中部署此镜像 ,只需给一个独立ip(VETH) 。不需要映射文件夹,不需要设置环境变量,假设部署后ip是 10.0.0.2

  • 镜像启动后,会启动两个naive进程,一个提供 socks5服务。端口是 1080

  • 另一个以redir模式运行,并转发所有tcp流量到此进程。此时的 10.0.0.2 是一个Fake-ip网关地址。并提供 fake-dns 功能( nslookup google.com 10.0.0.2 会得到 100.64 开头的 fake-ip 地址。) ,在浏览器打开http://10.0.0.2⁠ 即可配置 naiveproxy的用户名和密码 以及gfw列表和源数据。

  • 在ros中 添加一段静态路由 /ip route add dst-address=100.64.0.0/10 gateway=10.0.0.2

  • ros中 新建一个脚本<system -- Scripts -- + >,可以每天凌晨执行下面的脚本,更新ROS的静态dns分流列表 (ros 的 dns需要开启 allow remote requests)

:do {
	/tool fetch url="http://10.0.0.2/api/getdns" mode=http dst-path=gfwdns.rsc
} on-error={
	:log info message="fetch gfwdns.rsc failed...";
}

:if ([:len [/file find name="gfwdns.rsc"]] > 0) do={
	:do {
		/ip dns static remove numbers=[/ip dns static find comment=gfw] 
		:log info message="remove old static dns...";
	} on-error={}
	
    :do {
		/import file=gfwdns.rsc
	} on-error={
		:log info message="import gfwdns.rsc failed...";
	}
} else={
    :log warning message="File gfwdns.rsc does not exist."
}

⁠在镜像部署完成,并成功运行后,请执行一次上述scripts ,用以生成 静态dns 分流
⁠有一些app 不请求域名,直接内置的IP,需要添加一些静态路由到ros :

 /ip route add dst-address=149.154.160.0/20  gateway=10.0.0.2
 /ip route add dst-address=67.198.55.0/24  gateway=10.0.0.2
 /ip route add dst-address=91.108.4.0/22  gateway=10.0.0.2
 /ip route add dst-address=91.108.56.0/22  gateway=10.0.0.2
 /ip route add dst-address=109.239.140.0/24  gateway=10.0.0.2

Tag summary

Content type

Image

Digest

sha256:7aa35ab53…

Size

21.6 MB

Last updated

over 3 years ago

docker pull tonysun0319/naive