passwall: try use ipt2socks replace redsocks2

This commit is contained in:
CN_SZTL 2019-11-17 11:07:24 +08:00
parent dd10803768
commit cdc66ef655
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
9 changed files with 125 additions and 42 deletions

View File

@ -0,0 +1,48 @@
#
# Copyright (C) 2014 OpenWrt-dist
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ipt2socks
PKG_VERSION:=1.0.1
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/zfl9/ipt2socks.git
PKG_SOURCE_VERSION:=b9bd7d888f2f95a6d7306030c8a5e252732dc451
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
include $(INCLUDE_DIR)/package.mk
define Package/ipt2socks
SECTION:=net
CATEGORY:=Network
TITLE:=Utility for converting iptables (REDIRECT/TPROXY) to SOCKS5
URL:=https://github.com/zfl9/ipt2socks
DEPENDS:=+libuv
endef
define Package/ipt2socks/description
Utility for converting iptables (REDIRECT/TPROXY) to SOCKS5.
endef
define Package/ipt2socks/conffiles
/etc/config/ipt2socks
endef
#MAKE_FLAGS += INCLUDES="-I$(STAGING_DIR)/usr/include"
#MAKE_FLAGS += LDFLAGS="-L$(STAGING_DIR)/usr/lib"
MAKE_FLAGS += LIBS="-l:libuv_a.a"
define Package/ipt2socks/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ipt2socks $(1)/usr/bin
endef
$(eval $(call BuildPackage,ipt2socks))

View File

@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall
PKG_VERSION:=2.0
PKG_RELEASE:=99-20191114
PKG_RELEASE:=100-20191116
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PO2LMO:=./po2lmo
@ -17,8 +17,8 @@ include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)/config
menu "Configuration"
config PACKAGE_$(PKG_NAME)_INCLUDE_redsocks2
bool "Include RedSocks2"
config PACKAGE_$(PKG_NAME)_INCLUDE_ipt2socks
bool "Include ipt2socks"
default y
config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks
@ -83,13 +83,13 @@ define Package/$(PKG_NAME)
PKGARCH:=all
DEPENDS:=+curl +libcurl +libmbedtls +ca-bundle +ca-certificates +resolveip +iptables-mod-tproxy +kmod-ipt-tproxy +iptables-mod-ipopt +kmod-ipt-ipopt +ip +ipset +coreutils +coreutils-base64 +coreutils-nohup +luci-lib-jsonc +unzip \
+dnsmasq-full \
+PACKAGE_$(PKG_NAME)_INCLUDE_redsocks2:redsocks2 \
+PACKAGE_$(PKG_NAME)_INCLUDE_ipt2socks:ipt2socks \
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks:shadowsocks-libev-ss-redir \
+PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR:shadowsocksr-libev-alt \
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_socks:shadowsocks-libev-ss-local \
+PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_socks:shadowsocksr-libev-ssr-local \
+PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:v2ray \
+PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:trojan +redsocks2 \
+PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:trojan +ipt2socks \
+PACKAGE_$(PKG_NAME)_INCLUDE_Brook:brook \
+PACKAGE_$(PKG_NAME)_INCLUDE_kcptun:kcptun-client \
+PACKAGE_$(PKG_NAME)_INCLUDE_haproxy:haproxy \
@ -128,7 +128,6 @@ endef
define Package/$(PKG_NAME)/postinst
#!/bin/sh
chmod a+x $${IPKG_INSTROOT}/usr/share/passwall/* >/dev/null 2>&1
rm -rf $${IPKG_INSTROOT}/etc/chinadns_chnroute.txt >/dev/null 2>&1
exit 0
endef

View File

@ -127,8 +127,8 @@ function server_status()
i, i))
e["tcp_redir_server%s_status" % i] =
luci.sys.call(string.format(
"ps -w | grep -v grep | grep -i -E '%s/TCP_%s|brook tproxy -l 0.0.0.0:%s' >/dev/null",
appname, i, listen_port)) == 0
"ps -w | grep -v grep | grep -i -E '%s/TCP_%s|brook tproxy -l 0.0.0.0:%s|ipt2socks -T -l %s' >/dev/null",
appname, i, listen_port, listen_port)) == 0
end
local udp_redir_server_num = luci.sys.exec(
@ -141,8 +141,8 @@ function server_status()
i, i))
e["udp_redir_server%s_status" % i] =
luci.sys.call(string.format(
"ps -w | grep -v grep | grep -i -E '%s/UDP_%s|brook tproxy -l 0.0.0.0:%s' >/dev/null",
appname, i, listen_port)) == 0
"ps -w | grep -v grep | grep -i -E '%s/UDP_%s|brook tproxy -l 0.0.0.0:%s|ipt2socks -U -l %s' >/dev/null",
appname, i, listen_port, listen_port)) == 0
end
local socks5_proxy_server_num = luci.sys.exec(

View File

@ -102,7 +102,7 @@ end
o = s:option(ListValue, "dns_mode", translate("DNS Forward Mode"))
o.rmempty = false
o:reset_values()
if is_installed("openwrt_chinadns") or is_finded("chinadns") then
if is_installed("ChinaDNS") or is_finded("chinadns") then
o:value("chinadns", "ChinaDNS")
end
if is_installed("dns2socks") or is_finded("dns2socks") then

View File

@ -58,7 +58,8 @@ remarks.default = translate("Node Remarks")
remarks.rmempty = false
server_type = s:option(ListValue, "server_type", translate("Server Type"))
if is_installed("redsocks2") or is_finded("redsocks2") then
if ((is_installed("redsocks2") or is_finded("redsocks2")) or
(is_installed("ipt2socks") or is_finded("ipt2socks"))) then
server_type:value("Socks5", translate("Socks5 Server"))
end
if is_finded("ss-redir") then
@ -352,8 +353,6 @@ server_type.validate = function(self, value)
return value
end
v2ray_transport.validate = function(self, value)
return value
end
v2ray_transport.validate = function(self, value) return value end
return m

View File

@ -50,7 +50,7 @@ config global_rules
option Pcap_WhiteList_update '0'
option auto_update '0'
option chnroute_version '2019-10-18'
option gfwlist_version '2019-10-28'
option gfwlist_version '2019-11-16'
config global_app
option v2ray_client_file '/usr/bin/v2ray/'

View File

@ -388,16 +388,20 @@ start_tcp_redir() {
trojan_bin=$(find_bin trojan)
[ -n "$trojan_bin" ] && $trojan_bin -c $config_file >/dev/null 2>&1 &
elif [ "$TYPE" == "socks5" ]; then
redsocks_bin=$(find_bin redsocks2)
[ -n "$redsocks_bin" ] && {
local server=$(config_get $temp_server server)
local server_port=$(config_get $temp_server server_port)
local server_username=$(config_get $temp_server username)
local server_password=$(config_get $temp_server password)
local redsocks_config_file=$CONFIG_PATH/TCP_$i.conf
gen_redsocks_config $redsocks_config_file tcp $port $server $server_port $server_username $server_password
$redsocks_bin -c $redsocks_config_file >/dev/null &
local server=$(config_get $temp_server server)
local server_port=$(config_get $temp_server server_port)
local server_username=$(config_get $temp_server username)
local server_password=$(config_get $temp_server password)
ipt2socks_bin=$(find_bin ipt2socks)
[ -n "$ipt2socks_bin" ] && {
$ipt2socks_bin -T -l $port -b 0.0.0.0 -s $server -p $server_port -R >/dev/null &
}
#redsocks_bin=$(find_bin redsocks2)
#[ -n "$redsocks_bin" ] && {
# local redsocks_config_file=$CONFIG_PATH/TCP_$i.conf
# gen_redsocks_config $redsocks_config_file tcp $port $server $server_port $server_username $server_password
# $redsocks_bin -c $redsocks_config_file >/dev/null &
#}
elif [ "$TYPE" == "ss" -o "$TYPE" == "ssr" ]; then
ss_bin=$(find_bin "$TYPE"-redir)
[ -n "$ss_bin" ] && {
@ -435,23 +439,36 @@ start_udp_redir() {
elif [ "$TYPE" == "trojan" ]; then
trojan_bin=$(find_bin trojan)
[ -n "$trojan_bin" ] && $trojan_bin -c $config_file >/dev/null 2>&1 &
redsocks_bin=$(find_bin redsocks2)
[ -n "$redsocks_bin" ] && {
local redsocks_config_file=$CONFIG_PATH/redsocks_UDP_$i.conf
gen_redsocks_config $redsocks_config_file udp $port "127.0.0.1" $socks5_port
$redsocks_bin -c $redsocks_config_file >/dev/null &
local server=$(config_get $temp_server server)
local server_port=$(config_get $temp_server server_port)
local server_username=$(config_get $temp_server username)
local server_password=$(config_get $temp_server password)
ipt2socks_bin=$(find_bin ipt2socks)
[ -n "$ipt2socks_bin" ] && {
$ipt2socks_bin -U -l $port -b 0.0.0.0 -s 127.0.0.1 -p $socks5_port -R >/dev/null &
}
#redsocks_bin=$(find_bin redsocks2)
#[ -n "$redsocks_bin" ] && {
# local redsocks_config_file=$CONFIG_PATH/redsocks_UDP_$i.conf
# gen_redsocks_config $redsocks_config_file udp $port "127.0.0.1" $socks5_port
# $redsocks_bin -c $redsocks_config_file >/dev/null &
#}
elif [ "$TYPE" == "socks5" ]; then
redsocks_bin=$(find_bin redsocks2)
[ -n "$redsocks_bin" ] && {
local server=$(config_get $temp_server server)
local server_port=$(config_get $temp_server server_port)
local server_username=$(config_get $temp_server username)
local server_password=$(config_get $temp_server password)
local redsocks_config_file=$CONFIG_PATH/UDP_$i.conf
gen_redsocks_config $redsocks_config_file udp $port $server $server_port $server_username $server_password
$redsocks_bin -c $redsocks_config_file >/dev/null &
local server=$(config_get $temp_server server)
local server_port=$(config_get $temp_server server_port)
local server_username=$(config_get $temp_server username)
local server_password=$(config_get $temp_server password)
ipt2socks_bin=$(find_bin ipt2socks)
[ -n "$ipt2socks_bin" ] && {
$ipt2socks_bin -U -l $port -b 0.0.0.0 -s $server -p $server_port -R >/dev/null &
}
#redsocks_bin=$(find_bin redsocks2)
#[ -n "$redsocks_bin" ] && {
# local redsocks_config_file=$CONFIG_PATH/UDP_$i.conf
# gen_redsocks_config $redsocks_config_file udp $port $server $server_port $server_username $server_password
# $redsocks_bin -c $redsocks_config_file >/dev/null &
#}
elif [ "$TYPE" == "ss" -o "$TYPE" == "ssr" ]; then
ss_bin=$(find_bin "$TYPE"-redir)
[ -n "$ss_bin" ] && {
@ -1130,7 +1147,7 @@ stop() {
clean_log
source $APP_PATH/iptables.sh stop
del_vps_port
kill_all pdnsd Pcap_DNSProxy brook dns2socks haproxy dns-forwarder chinadns dnsproxy
kill_all pdnsd Pcap_DNSProxy brook dns2socks haproxy dns-forwarder chinadns dnsproxy ipt2socks
ps -w | grep -E "$CONFIG_TCP_FILE|$CONFIG_UDP_FILE|$CONFIG_SOCKS5_FILE" | grep -v "grep" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
ps -w | grep -E "$CONFIG_PATH" | grep -v "grep" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
ps -w | grep "kcptun_client" | grep "$KCPTUN_REDIR_PORT" | grep -v "grep" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &

View File

@ -192,6 +192,8 @@ server=/.6park.com/127.0.0.1#7913
ipset=/.6park.com/gfwlist
server=/.6parker.com/127.0.0.1#7913
ipset=/.6parker.com/gfwlist
server=/.6parknews.com/127.0.0.1#7913
ipset=/.6parknews.com/gfwlist
server=/.7capture.com/127.0.0.1#7913
ipset=/.7capture.com/gfwlist
server=/.7cow.com/127.0.0.1#7913
@ -748,6 +750,8 @@ server=/.avdb.tv/127.0.0.1#7913
ipset=/.avdb.tv/gfwlist
server=/.avfantasy.com/127.0.0.1#7913
ipset=/.avfantasy.com/gfwlist
server=/.avg.com/127.0.0.1#7913
ipset=/.avg.com/gfwlist
server=/.avgle.com/127.0.0.1#7913
ipset=/.avgle.com/gfwlist
server=/.avidemux.org/127.0.0.1#7913
@ -2436,6 +2440,8 @@ server=/.dm530.net/127.0.0.1#7913
ipset=/.dm530.net/gfwlist
server=/.dmcdn.net/127.0.0.1#7913
ipset=/.dmcdn.net/gfwlist
server=/.dmhy.org/127.0.0.1#7913
ipset=/.dmhy.org/gfwlist
server=/.dmm.co.jp/127.0.0.1#7913
ipset=/.dmm.co.jp/gfwlist
server=/.dns-dns.com/127.0.0.1#7913
@ -2466,6 +2472,8 @@ server=/.dnvod.tv/127.0.0.1#7913
ipset=/.dnvod.tv/gfwlist
server=/.doctorvoice.org/127.0.0.1#7913
ipset=/.doctorvoice.org/gfwlist
server=/.documentingreality.com/127.0.0.1#7913
ipset=/.documentingreality.com/gfwlist
server=/.dogfartnetwork.com/127.0.0.1#7913
ipset=/.dogfartnetwork.com/gfwlist
server=/.dojin.com/127.0.0.1#7913
@ -3138,6 +3146,8 @@ server=/.feedburner.com/127.0.0.1#7913
ipset=/.feedburner.com/gfwlist
server=/.feeds.fileforum.com/127.0.0.1#7913
ipset=/.feeds.fileforum.com/gfwlist
server=/.feedx.net/127.0.0.1#7913
ipset=/.feedx.net/gfwlist
server=/.feelssh.com/127.0.0.1#7913
ipset=/.feelssh.com/gfwlist
server=/.feer.com/127.0.0.1#7913
@ -4272,6 +4282,8 @@ server=/.guaneryu.com/127.0.0.1#7913
ipset=/.guaneryu.com/gfwlist
server=/.guangming.com.my/127.0.0.1#7913
ipset=/.guangming.com.my/gfwlist
server=/.guangnianvpn.com/127.0.0.1#7913
ipset=/.guangnianvpn.com/gfwlist
server=/.guardster.com/127.0.0.1#7913
ipset=/.guardster.com/gfwlist
server=/.guishan.org/127.0.0.1#7913
@ -4346,6 +4358,8 @@ server=/.hakkatv.org.tw/127.0.0.1#7913
ipset=/.hakkatv.org.tw/gfwlist
server=/.handcraftedsoftware.org/127.0.0.1#7913
ipset=/.handcraftedsoftware.org/gfwlist
server=/.hanime.tv/127.0.0.1#7913
ipset=/.hanime.tv/gfwlist
server=/.hanunyi.com/127.0.0.1#7913
ipset=/.hanunyi.com/gfwlist
server=/.hao.news/127.0.0.1#7913
@ -5668,6 +5682,8 @@ server=/.lighti.me/127.0.0.1#7913
ipset=/.lighti.me/gfwlist
server=/.lightnovel.cn/127.0.0.1#7913
ipset=/.lightnovel.cn/gfwlist
server=/.lightyearvpn.com/127.0.0.1#7913
ipset=/.lightyearvpn.com/gfwlist
server=/.lihkg.com/127.0.0.1#7913
ipset=/.lihkg.com/gfwlist
server=/.like.com/127.0.0.1#7913
@ -7576,6 +7592,8 @@ server=/.qvodzy.org/127.0.0.1#7913
ipset=/.qvodzy.org/gfwlist
server=/.qxbbs.org/127.0.0.1#7913
ipset=/.qxbbs.org/gfwlist
server=/.qz.com/127.0.0.1#7913
ipset=/.qz.com/gfwlist
server=/.r18.com/127.0.0.1#7913
ipset=/.r18.com/gfwlist
server=/.ra.gg/127.0.0.1#7913
@ -10208,6 +10226,8 @@ server=/.waselpro.com/127.0.0.1#7913
ipset=/.waselpro.com/gfwlist
server=/.washeng.net/127.0.0.1#7913
ipset=/.washeng.net/gfwlist
server=/.washingtonpost.com/127.0.0.1#7913
ipset=/.washingtonpost.com/gfwlist
server=/.watch8x.com/127.0.0.1#7913
ipset=/.watch8x.com/gfwlist
server=/.watchinese.com/127.0.0.1#7913

View File

@ -48,7 +48,7 @@ for i in $(seq 1 $TCP_REDIR_SERVER_NUM); do
fi
fi
[ -f "/var/etc/passwall/port/TCP_$i" ] && listen_port=$(echo -n `cat /var/etc/passwall/port/TCP_$i`)
icount=$(ps -w | grep -v grep | grep -i -E "${CONFIG}/TCP_${i}|brook tproxy -l 0.0.0.0:${listen_port}" | wc -l)
icount=$(ps -w | grep -v grep | grep -i -E "${CONFIG}/TCP_${i}|brook tproxy -l 0.0.0.0:${listen_port}|ipt2socks -T -l ${listen_port}" | wc -l)
if [ $icount = 0 ]; then
/etc/init.d/passwall restart
exit 0
@ -63,7 +63,7 @@ for i in $(seq 1 $UDP_REDIR_SERVER_NUM); do
if [ "$temp_server" != "nil" ]; then
[ "$temp_server" == "default" ] && temp_server=$TCP_REDIR_SERVER1
[ -f "/var/etc/passwall/port/UDP_$i" ] && listen_port=$(echo -n `cat /var/etc/passwall/port/UDP_$i`)
icount=$(ps -w | grep -v grep | grep -i -E "${CONFIG}/UDP_${i}|brook tproxy -l 0.0.0.0:${listen_port}" | wc -l)
icount=$(ps -w | grep -v grep | grep -i -E "${CONFIG}/UDP_${i}|brook tproxy -l 0.0.0.0:${listen_port}|ipt2socks -U -l ${listen_port}" | wc -l)
if [ $icount = 0 ]; then
/etc/init.d/passwall restart
exit 0