mirror of
https://github.com/haad/proxychains
synced 2026-06-08 14:30:41 +00:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5b7270d75b | |||
| e6b5f245f7 | |||
| 17dbc76577 | |||
| 7599bdfdfe | |||
| c1f0c68abd | |||
| 877e1844ea | |||
| 69ab0415ac | |||
| c14bf58cd7 | |||
| 5294214150 | |||
| 385b349a8e | |||
| 2320f6608a | |||
| 251fd7cd4a | |||
| b0d9d1da41 | |||
| a7831a8f53 | |||
| c9b8ce35b2 | |||
| 63c3a4b0d2 | |||
| 4d40a4790f | |||
| 50820ce80d | |||
| b6746997d2 | |||
| 6dda28a2c8 | |||
| fb3d8e04a1 | |||
| 0938a940c5 | |||
| 788ffd9d26 | |||
| 99dcfe085e | |||
| 89e8bfddf4 | |||
| adb13c7e79 | |||
| 2250ef66a8 |
@@ -9,3 +9,5 @@
|
||||
libtool
|
||||
config.*
|
||||
stamp-h
|
||||
proxychains4
|
||||
*.dylib
|
||||
|
||||
@@ -17,7 +17,7 @@ SRCS = $(sort $(wildcard src/*.c))
|
||||
OBJS = $(SRCS:.c=.o)
|
||||
LOBJS = src/core.o src/common.o src/libproxychains.o
|
||||
|
||||
CCFLAGS = -Wall -O0 -g -std=c99 -D_GNU_SOURCE -pipe -DTHREAD_SAFE -Werror
|
||||
CCFLAGS = -Wall -O0 -g -std=c99 -D_GNU_SOURCE -pipe -DTHREAD_SAFE -Werror
|
||||
LDFLAGS = -shared -fPIC -ldl -lpthread
|
||||
INC =
|
||||
PIC = -fPIC
|
||||
@@ -37,22 +37,23 @@ ALL_LIBS = $(SHARED_LIBS)
|
||||
PXCHAINS = proxychains4
|
||||
ALL_TOOLS = $(PXCHAINS)
|
||||
|
||||
|
||||
CFLAGS+=$(USER_CFLAGS) $(MAC_CFLAGS)
|
||||
CFLAGS_MAIN=-DLIB_DIR=\"$(libdir)\" -DSYSCONFDIR=\"$(confdir)\" -DDLL_NAME=\"$(LDSO_PATHNAME)\"
|
||||
|
||||
CCFLAGS+=$(USER_CFLAGS) $(MAC_CFLAGS)
|
||||
LDFLAGS+=$(USER_LDFLAGS) $(MAC_LDFLAGS)
|
||||
CXXFLAGS+=$(CCFLAGS) $(USER_CFLAGS) $(MAC_CFLAGS)
|
||||
CFLAGS_MAIN=-DLIB_DIR=\"$(libdir)\" -DINSTALL_PREFIX=\"$(prefix)\" -DDLL_NAME=\"$(LDSO_PATHNAME)\" -DSYSCONFDIR=\"$(confdir)\"
|
||||
|
||||
all: $(ALL_LIBS) $(ALL_TOOLS)
|
||||
|
||||
#install: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(DESTDIR)$(LDSO_PATHNAME)
|
||||
install:
|
||||
install -d $(DESTDIR)/$(bindir) $(DESTDIR)/$(libdir) $(DESTDIR)/$(confdir) $(DESTDIR)/$(includedir)
|
||||
install $(INSTALL_FLAGS) 755 $(ALL_TOOLS) $(DESTDIR)/$(bindir)/
|
||||
install $(INSTALL_FLAGS) 644 $(ALL_LIBS) $(DESTDIR)/$(libdir)/
|
||||
|
||||
install-config:
|
||||
install -d $(DESTDIR)/$(confdir)
|
||||
install $(INSTALL_FLAGS) 644 src/proxychains.conf $(DESTDIR)/$(confdir)/
|
||||
|
||||
install:
|
||||
install -d $(DESTDIR)/$(bindir)/ $(DESTDIR)/$(libdir)/
|
||||
install $(INSTALL_FLAGS) 755 $(ALL_TOOLS) $(DESTDIR)/$(bindir)/
|
||||
install $(INSTALL_FLAGS) 644 $(ALL_LIBS) $(DESTDIR)/$(libdir)/
|
||||
|
||||
clean:
|
||||
rm -f $(ALL_LIBS)
|
||||
rm -f $(ALL_TOOLS)
|
||||
@@ -67,5 +68,4 @@ $(LDSO_PATHNAME): $(LOBJS)
|
||||
$(ALL_TOOLS): $(OBJS)
|
||||
$(CC) src/main.o src/common.o -o $(PXCHAINS)
|
||||
|
||||
|
||||
.PHONY: all clean install
|
||||
.PHONY: all clean install install-config
|
||||
@@ -79,7 +79,8 @@ echo includedir=$includedir>>config.mak
|
||||
echo sysconfdir=$sysconfdir>>config.mak
|
||||
if ismac ; then
|
||||
echo LDSO_SUFFIX=dylib>>config.mak
|
||||
echo MAC_CFLAGS+=-DIS_MAC=1>>config.mak
|
||||
echo MAC_CFLAGS+=-DIS_MAC=1 -arch x86_64 -arch i386 >>config.mak
|
||||
echo MAC_LDFLAGS+=-arch x86_64 -arch i386 >>config.mak
|
||||
echo LD_SET_SONAME=-Wl,-install_name,>>config.mak
|
||||
echo INSTALL_FLAGS=-m>>config.mak
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
Begin3
|
||||
Title: ProxyChains
|
||||
Version: 4.0
|
||||
Entered-date:
|
||||
Description:
|
||||
Keywords:
|
||||
Author: <N37CR347UR3>
|
||||
Maintained-by: <haad@netbsd.org>
|
||||
Primary-site:
|
||||
Home-page: http://proxychains.sourceforge.net
|
||||
Original-site:
|
||||
Platforms: Linux and other Unices
|
||||
Copying-policy: GNU Public License
|
||||
End
|
||||
+8
-12
@@ -14,41 +14,37 @@ char *get_config_path(char* default_path, char* pbuf, size_t bufsize) {
|
||||
// top priority: user defined path
|
||||
char *path = default_path;
|
||||
if(check_path(path))
|
||||
goto have;
|
||||
|
||||
return path;
|
||||
|
||||
// priority 1: env var PROXYCHAINS_CONF_FILE
|
||||
path = getenv(PROXYCHAINS_CONF_FILE_ENV_VAR);
|
||||
if(check_path(path))
|
||||
goto have;
|
||||
return path;
|
||||
|
||||
// priority 2; proxychains conf in actual dir
|
||||
path = getcwd(buf, sizeof(buf));
|
||||
snprintf(pbuf, bufsize, "%s/%s", path, PROXYCHAINS_CONF_FILE);
|
||||
path = pbuf;
|
||||
if(check_path(path))
|
||||
goto have;
|
||||
return path;
|
||||
|
||||
// priority 3; $HOME/.proxychains/proxychains.conf
|
||||
path = getenv("HOME");
|
||||
snprintf(pbuf, bufsize, "%s/.proxychains/%s", path, PROXYCHAINS_CONF_FILE);
|
||||
path = pbuf;
|
||||
if(check_path(path))
|
||||
goto have;
|
||||
return path;
|
||||
|
||||
// priority 4: $SYSCONFDIR/proxychains.conf
|
||||
path = SYSCONFDIR "/" PROXYCHAINS_CONF_FILE;
|
||||
if(check_path(path))
|
||||
goto have;
|
||||
return path;
|
||||
|
||||
// priority 5: /etc/proxychains.conf
|
||||
path = "/etc/" PROXYCHAINS_CONF_FILE;
|
||||
if(check_path(path))
|
||||
goto have;
|
||||
|
||||
return path;
|
||||
|
||||
perror("couldnt find configuration file");
|
||||
exit(1);
|
||||
|
||||
return NULL;
|
||||
have:
|
||||
return path;
|
||||
}
|
||||
|
||||
+31
-6
@@ -267,7 +267,6 @@ static int tunnel_to(int sock, ip_type ip, unsigned short port, proxy_type pt, c
|
||||
int len;
|
||||
unsigned char buff[BUFF_SIZE];
|
||||
char ip_buf[16];
|
||||
|
||||
//memset (buff, 0, sizeof(buff));
|
||||
|
||||
switch (pt) {
|
||||
@@ -706,7 +705,7 @@ int connect_proxy_chain(int sock, ip_type target_ip,
|
||||
proxychains_write_log("\n!!!need more proxies!!!\n");
|
||||
error_strict:
|
||||
PDEBUG("error\n");
|
||||
|
||||
|
||||
release_all(pd, proxy_count);
|
||||
if(ns != -1)
|
||||
close(ns);
|
||||
@@ -820,6 +819,31 @@ void proxy_freeaddrinfo(struct addrinfo *res) {
|
||||
free(res);
|
||||
}
|
||||
|
||||
void proxy_getserverbyname(const char * service, struct servent *se_buf,
|
||||
char * buf, size_t buf_len, struct servent **se_result)
|
||||
{
|
||||
|
||||
#ifdef __linux__
|
||||
getservbyname_r(service, NULL, se_buf, buf, buf_len, se_result);
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
struct servent *se;
|
||||
#ifdef THREAD_SAFE
|
||||
MUTEX_LOCK(&internal_getsrvbyname_lock);
|
||||
#endif
|
||||
if(service)
|
||||
se = getservbyname(service, NULL);
|
||||
if (!se)
|
||||
memcpy(se_buf, se, buf_len);
|
||||
*se_result = se_buf;
|
||||
#ifdef THREAD_SAFE
|
||||
MUTEX_UNLOCK(&internal_getsrvbyname_lock);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
int proxy_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) {
|
||||
struct gethostbyname_data ghdata;
|
||||
@@ -834,7 +858,7 @@ int proxy_getaddrinfo(const char *node, const char *service, const struct addrin
|
||||
// printf("proxy_getaddrinfo node %s service %s\n",node,service);
|
||||
space = calloc(1, sizeof(struct addrinfo_data));
|
||||
if(!space) goto err1;
|
||||
|
||||
|
||||
if(node && !inet_aton(node, &((struct sockaddr_in *) &space->sockaddr_space)->sin_addr)) {
|
||||
hp = proxy_gethostbyname(node, &ghdata);
|
||||
if(hp)
|
||||
@@ -843,14 +867,15 @@ int proxy_getaddrinfo(const char *node, const char *service, const struct addrin
|
||||
else
|
||||
goto err2;
|
||||
}
|
||||
if(service) getservbyname_r(service, NULL, &se_buf, buf, sizeof(buf), &se);
|
||||
if(service)
|
||||
proxy_getserverbyname(service, &se_buf, buf, sizeof(buf), &se);
|
||||
|
||||
port = se ? se->s_port : htons(atoi(service ? service : "0"));
|
||||
((struct sockaddr_in *) &space->sockaddr_space)->sin_port = port;
|
||||
|
||||
*res = p = &space->addrinfo_space;
|
||||
assert((size_t)p == (size_t) space);
|
||||
|
||||
|
||||
p->ai_addr = &space->sockaddr_space;
|
||||
if(node)
|
||||
strncpy(space->addr_name, node, sizeof(space->addr_name));
|
||||
@@ -866,7 +891,7 @@ int proxy_getaddrinfo(const char *node, const char *service, const struct addrin
|
||||
} else {
|
||||
p->ai_flags = (AI_V4MAPPED | AI_ADDRCONFIG);
|
||||
}
|
||||
|
||||
|
||||
goto out;
|
||||
err2:
|
||||
free(space);
|
||||
|
||||
@@ -42,6 +42,11 @@ extern internal_ip_lookup_table internal_ips;
|
||||
#ifdef THREAD_SAFE
|
||||
#include <pthread.h>
|
||||
pthread_mutex_t internal_ips_lock;
|
||||
|
||||
#ifdef __APPLE__
|
||||
pthread_mutex_t internal_getsrvbyname_lock;
|
||||
#endif
|
||||
|
||||
# define MUTEX_LOCK(x) pthread_mutex_lock(x)
|
||||
# define MUTEX_UNLOCK(x) pthread_mutex_unlock(x)
|
||||
# define MUTEX_INIT(x,y) pthread_mutex_init(x, y)
|
||||
|
||||
+38
-8
@@ -19,6 +19,7 @@
|
||||
#define _GNU_SOURCE
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
|
||||
#include <dlfcn.h>
|
||||
#include <errno.h>
|
||||
@@ -55,6 +56,11 @@ int tcp_connect_time_out;
|
||||
int proxychains_got_chain_data = 0;
|
||||
int proxychains_quiet_mode = 0;
|
||||
int proxychains_resolver = 0;
|
||||
|
||||
unsigned int proxychains_proxy_count = 0;
|
||||
unsigned int proxychains_max_chain = 1;
|
||||
unsigned int remote_dns_subnet = 224;
|
||||
|
||||
localaddr_arg localnet_addr[MAX_LOCALNET];
|
||||
chain_type proxychains_ct;
|
||||
proxy_data proxychains_pd[MAX_CHAIN];
|
||||
@@ -71,7 +77,6 @@ static inline void get_chain_data(proxy_data * pd, unsigned int *proxy_count, ch
|
||||
static void* load_sym(char* symname, void* proxyfunc) {
|
||||
|
||||
void *funcptr = dlsym(RTLD_NEXT, symname);
|
||||
|
||||
if(!funcptr) {
|
||||
fprintf(stderr, "Cannot load symbol '%s' %s\n", symname, dlerror());
|
||||
exit(1);
|
||||
@@ -91,18 +96,21 @@ static void* load_sym(char* symname, void* proxyfunc) {
|
||||
|
||||
static void do_init(void) {
|
||||
MUTEX_INIT(&internal_ips_lock, NULL);
|
||||
|
||||
#ifdef __APPLE__
|
||||
MUTEX_INIT(&internal_getsrvbyname_lock, NULL);
|
||||
#endif
|
||||
|
||||
/* read the config file */
|
||||
get_chain_data(proxychains_pd, &proxychains_proxy_count, &proxychains_ct);
|
||||
|
||||
proxychains_write_log(LOG_PREFIX "DLL init\n");
|
||||
|
||||
SETUP_SYM(connect);
|
||||
SETUP_SYM(gethostbyname);
|
||||
SETUP_SYM(getaddrinfo);
|
||||
SETUP_SYM(freeaddrinfo);
|
||||
SETUP_SYM(gethostbyaddr);
|
||||
SETUP_SYM(getnameinfo);
|
||||
|
||||
init_l = 1;
|
||||
}
|
||||
|
||||
@@ -120,10 +128,10 @@ static void init_lib_wrapper(const char* caller) {
|
||||
#endif
|
||||
}
|
||||
|
||||
/* if we use gcc >= 3, we can instruct the dynamic loader
|
||||
/* if we use gcc >= 3, we can instruct the dynamic loader
|
||||
* to call init_lib at link time. otherwise it gets loaded
|
||||
* lazily, which has the disadvantage that there's a potential
|
||||
* race condition if 2 threads call it before init_l is set
|
||||
* race condition if 2 threads call it before init_l is set
|
||||
* and PTHREAD support was disabled */
|
||||
#if __GNUC__ > 2
|
||||
__attribute__((constructor))
|
||||
@@ -132,6 +140,28 @@ static void gcc_init(void) {
|
||||
}
|
||||
#endif
|
||||
|
||||
FILE *
|
||||
open_config_file() {
|
||||
char home_conf[MAXPATHLEN], prefix_conf[MAXPATHLEN];
|
||||
FILE *file;
|
||||
|
||||
snprintf(home_conf, 256, "%s/.proxychains/proxychains.conf", getenv("HOME"));
|
||||
snprintf(prefix_conf, 256, "%s/etc/proxychains.conf", INSTALL_PREFIX);
|
||||
|
||||
if(!(file = fopen("./proxychains.conf", "r"))) {
|
||||
if(!(file = fopen(home_conf, "r"))) {
|
||||
if(!(file = fopen(prefix_conf, "r"))) {
|
||||
if(!(file = fopen("/etc/proxychains.conf", "r"))) {
|
||||
perror("Can't locate proxychains.conf");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return file;
|
||||
}
|
||||
|
||||
/* get configuration from config file */
|
||||
static void get_chain_data(proxy_data * pd, unsigned int *proxy_count, chain_type * ct) {
|
||||
int count = 0, port_n = 0, list = 0;
|
||||
@@ -148,7 +178,6 @@ static void get_chain_data(proxy_data * pd, unsigned int *proxy_count, chain_typ
|
||||
tcp_read_time_out = 4 * 1000;
|
||||
tcp_connect_time_out = 10 * 1000;
|
||||
*ct = DYNAMIC_TYPE;
|
||||
|
||||
env = get_config_path(getenv(PROXYCHAINS_CONF_FILE_ENV_VAR), buff, sizeof(buff));
|
||||
file = fopen(env, "r");
|
||||
|
||||
@@ -162,7 +191,7 @@ static void get_chain_data(proxy_data * pd, unsigned int *proxy_count, chain_typ
|
||||
if(list) {
|
||||
if(count >= MAX_CHAIN)
|
||||
break;
|
||||
|
||||
|
||||
memset(&pd[count], 0, sizeof(proxy_data));
|
||||
|
||||
pd[count].ps = PLAY_STATE;
|
||||
@@ -277,6 +306,7 @@ int connect(int sock, const struct sockaddr *addr, unsigned int len) {
|
||||
unsigned short port;
|
||||
size_t i;
|
||||
int remote_dns_connect = 0;
|
||||
|
||||
INIT();
|
||||
optlen = sizeof(socktype);
|
||||
getsockopt(sock, SOL_SOCKET, SO_TYPE, &socktype, &optlen);
|
||||
@@ -378,7 +408,7 @@ int getnameinfo(const struct sockaddr *sa,
|
||||
int ret = 0;
|
||||
|
||||
INIT();
|
||||
|
||||
|
||||
PDEBUG("getnameinfo: %s %s\n", host, serv);
|
||||
|
||||
if(!proxychains_resolver) {
|
||||
|
||||
+5
-6
@@ -94,7 +94,6 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
/* check if path of config file has not been passed via command line */
|
||||
path = get_config_path(path, pbuf, sizeof(pbuf));
|
||||
|
||||
if(!quiet)
|
||||
fprintf(stderr, LOG_PREFIX "config file found: %s\n", path);
|
||||
|
||||
@@ -125,12 +124,12 @@ int main(int argc, char *argv[]) {
|
||||
fprintf(stderr, LOG_PREFIX "preloading %s/%s\n", prefix, dll_name);
|
||||
|
||||
#ifndef IS_MAC
|
||||
snprintf(buf, sizeof(buf), "LD_PRELOAD=%s/%s", prefix, dll_name);
|
||||
putenv(buf);
|
||||
snprintf(buf, sizeof(buf), "%s/%s", prefix, dll_name);
|
||||
setenv("LD_PRELOAD", buf, 1);
|
||||
#else
|
||||
snprintf(buf, sizeof(buf), "DYLD_INSERT_LIBRARIES=%s/%s", prefix, dll_name);
|
||||
putenv(buf);
|
||||
putenv("DYLD_FORCE_FLAT_NAMESPACE=1");
|
||||
snprintf(buf, sizeof(buf), "%s/%s", prefix, dll_name);
|
||||
setenv("DYLD_INSERT_LIBRARIES", buf, 1);
|
||||
setenv("DYLD_FORCE_FLAT_NAMESPACE", "1", 1);
|
||||
#endif
|
||||
execvp(argv[start_argv], &argv[start_argv]);
|
||||
perror("proxychains can't load process....");
|
||||
|
||||
+93
-13
@@ -1,26 +1,106 @@
|
||||
#!/bin/sh
|
||||
echo "ProxyChains-3.1 (http://proxychains.sf.net)"
|
||||
echo "ProxyChains-4.0 (https://github.com/haad/proxychains)"
|
||||
|
||||
usage() {
|
||||
|
||||
echo " usage:"
|
||||
echo " $0 [h] [f config-file] <prog> [args]"
|
||||
echo " $0 [hq] [-f config-file] <prog> [args]"
|
||||
echo " -q make proxychains quiet"
|
||||
exit
|
||||
}
|
||||
|
||||
find_proxy_conf() {
|
||||
|
||||
show_proxy_env
|
||||
if [ -f "/usr/local/etc/proxychains.conf" ]; then
|
||||
export PROXYCHAINS_CONF_FILE="/usr/local/etc/proxychains.conf"
|
||||
else
|
||||
if [ -f "/etc/proxychains.conf" ];then
|
||||
PROXYCHAINS_CONF_FILE="/etc/proxychains.conf"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# XXX We should not overide possible user settings here. Just add libproxychains to it.
|
||||
#
|
||||
setup_proxy_env() {
|
||||
|
||||
if [ -z "$PROXYCHAINS_CONF_FILE" ]; then
|
||||
find_proxy_conf
|
||||
fi
|
||||
|
||||
if [ $(uname -s) = "Darwin" ]; then
|
||||
export DYLD_FORCE_FLAT_NAMESPACE=
|
||||
export DYLD_INSERT_LIBRARIES=libproxychains4.dylib
|
||||
else
|
||||
export LD_PRELOAD=libproxychains.so.4
|
||||
fi
|
||||
}
|
||||
|
||||
disable_proxy_env() {
|
||||
|
||||
if [ $(uname -s) = "Darwin" ]; then
|
||||
unset DYLD_FORCE_FLAT_NAMESPACE
|
||||
export DYLD_INSERT_LIBRARIES=$(echo $DYLD_INSERT_LIBRARIES | sed -e 's/libproxychains4.dylib//g')
|
||||
if [ -z $DYLD_INSERT_LIBRARIES ]; then
|
||||
unset DYLD_INSERT_LIBRARIES
|
||||
fi
|
||||
else
|
||||
export LD_PRELOAD=$(echo $DYLD_INSERT_LIBRARIES | sed -e 's/libproxychains.so.4//g')
|
||||
if [ -z $LD_PRELOAD ]; then
|
||||
unset LD_PRELOAD
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
show_proxy_env() {
|
||||
|
||||
echo "Proxified environment setup"
|
||||
echo "PROXYCHAINS_CONF_FILE = $PROXYCHAINS_CONF_FILE"
|
||||
|
||||
if [ $(uname -s) = "Darwin" ]; then
|
||||
echo "DYLD_FORCE_FLAT_NAMESPACE = $DYLD_FORCE_FLAT_NAMESPACE"
|
||||
echo "DYLD_INSERT_LIBRARIES = $DYLD_INSERT_LIBRARIES"
|
||||
else
|
||||
echo "LD_PRELOAD = $LD_PRELOAD"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ $# = 0 ] ; then
|
||||
usage
|
||||
fi
|
||||
|
||||
if [ $1 = "-h" ]; then
|
||||
usage
|
||||
fi
|
||||
case "$1" in
|
||||
-h)
|
||||
usage
|
||||
;;
|
||||
-f)
|
||||
export PROXYCHAINS_CONF_FILE=$2;
|
||||
shift;
|
||||
shift;
|
||||
;;
|
||||
-q)
|
||||
export PROXYCHAINS_QUIET_MODE=1;
|
||||
shift;
|
||||
;;
|
||||
show)
|
||||
show_proxy_env
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$1" = "-f" ]; then
|
||||
export PROXYCHAINS_CONF_FILE=$2;
|
||||
shift;
|
||||
shift;
|
||||
fi
|
||||
|
||||
export LD_PRELOAD=libproxychains.so.3
|
||||
exec "$@"
|
||||
case "$1" in
|
||||
on)
|
||||
setup_proxy_env
|
||||
show_proxy_env
|
||||
;;
|
||||
off)
|
||||
disable_proxy_env
|
||||
show_proxy_env
|
||||
;;
|
||||
*)
|
||||
setup_proxy_env
|
||||
exec "$@"
|
||||
;;
|
||||
esac
|
||||
|
||||
+10
-1
@@ -1,4 +1,4 @@
|
||||
# proxychains.conf VER 3.1
|
||||
# proxychains.conf VER 4
|
||||
#
|
||||
# HTTP, SOCKS4, SOCKS5 tunneling proxifier with DNS.
|
||||
#
|
||||
@@ -54,6 +54,15 @@ remote_dns_subnet 224
|
||||
tcp_read_time_out 15000
|
||||
tcp_connect_time_out 8000
|
||||
|
||||
# By default enable localnet for loopback address ranges
|
||||
# RFC5735 Loopback address range
|
||||
localnet 127.0.0.0/255.0.0.0
|
||||
# RFC1918 Private Address Ranges
|
||||
# localnet 10.0.0.0/255.0.0.0
|
||||
# localnet 172.16.0.0/255.240.0.0
|
||||
# localnet 192.168.0.0/255.255.0.0
|
||||
|
||||
|
||||
# Example for localnet exclusion
|
||||
## Exclude connections to 192.168.1.0/24 with port 80
|
||||
# localnet 192.168.1.0:80/255.255.255.0
|
||||
|
||||
Reference in New Issue
Block a user