diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index bb680c730..0800e1c08 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -675,7 +675,7 @@ function wizard_add() ucic:set("shadowsocks-libev",sectionname,"disabled","0") end end) - elseif (default_proxy == "v2ray" or default_proxy == "v2ray-vmess" or default_proxy == "v2ray-trojan") and serversnb > 0 and serversnb > disablednb then + elseif (default_proxy == "v2ray" or default_proxy == "v2ray-vmess" or default_proxy == "v2ray-trojan" or default_proxy == "v2ray-socks") and serversnb > 0 and serversnb > disablednb then --ucic:set("shadowsocks-libev","sss0","disabled","1") ucic:set("v2ray","main","enabled","1") if default_proxy == "v2ray" then @@ -684,6 +684,8 @@ function wizard_add() ucic:set("v2ray","omrout","protocol","vmess") elseif default_proxy == "v2ray-trojan" then ucic:set("v2ray","omrout","protocol","trojan") + elseif default_proxy == "v2ray-socks" then + ucic:set("v2ray","omrout","protocol","socks") end ucic:foreach("shadowsocks-libev", "server", function(s) local sectionname = s[".name"] @@ -741,6 +743,7 @@ function wizard_add() ucic:set("v2ray","omrout","s_vmess_address",server_ip) ucic:set("v2ray","omrout","s_vless_address",server_ip) ucic:set("v2ray","omrout","s_trojan_address",server_ip) + ucic:set("v2ray","omrout","s_socks_address",server_ip) luci.sys.call("uci -q del openvpn.omr.remote") luci.sys.call("uci -q add_list openvpn.omr.remote=" .. server_ip) ucic:set("qos","serverin","srchost",server_ip) @@ -780,6 +783,7 @@ function wizard_add() ucic:set("v2ray","omrout","s_vmess_address",server_ip) ucic:set("v2ray","omrout","s_vless_address",server_ip) ucic:set("v2ray","omrout","s_trojan_address",server_ip) + ucic:set("v2ray","omrout","s_socks_address",server_ip) luci.sys.call("uci -q del openvpn.omr.remote") luci.sys.call("uci -q add_list openvpn.omr.remote=" .. server_ip) ucic:set("qos","serverin","srchost",server_ip) @@ -832,6 +836,7 @@ function wizard_add() ucic:set("v2ray","omrout","s_vmess_user_security","none") ucic:set("v2ray","omrout","s_vless_user_security","none") ucic:set("v2ray","omrout","s_trojan_user_security","none") + ucic:set("v2ray","omrout","s_socks_user_security","none") elseif encryption == "aes-256-gcm" then ucic:set("openmptcprouter","settings","encryption","aes-256-gcm") ucic:set("shadowsocks-libev","sss0","method","aes-256-gcm") @@ -843,6 +848,7 @@ function wizard_add() ucic:set("v2ray","omrout","s_vmess_user_security","aes-128-gcm") ucic:set("v2ray","omrout","s_vless_user_security","aes-128-gcm") ucic:set("v2ray","omrout","s_trojan_user_security","aes-128-gcm") + ucic:set("v2ray","omrout","s_socks_user_security","aes-128-gcm") elseif encryption == "aes-256-cfb" then ucic:set("openmptcprouter","settings","encryption","aes-256-cfb") ucic:set("shadowsocks-libev","sss0","method","aes-256-cfb") @@ -854,6 +860,7 @@ function wizard_add() ucic:set("v2ray","omrout","s_vmess_user_security","aes-128-gcm") ucic:set("v2ray","omrout","s_vless_user_security","aes-128-gcm") ucic:set("v2ray","omrout","s_trojan_user_security","aes-128-gcm") + ucic:set("v2ray","omrout","s_socks_user_security","aes-128-gcm") elseif encryption == "chacha20-ietf-poly1305" then ucic:set("openmptcprouter","settings","encryption","chacha20") ucic:set("shadowsocks-libev","sss0","method","chacha20-ietf-poly1305") @@ -865,6 +872,7 @@ function wizard_add() ucic:set("v2ray","omrout","s_vmess_user_security","chacha20-poly1305") ucic:set("v2ray","omrout","s_vless_user_security","chacha20-poly1305") ucic:set("v2ray","omrout","s_trojan_user_security","chacha20-poly1305") + ucic:set("v2ray","omrout","s_socks_user_security","chacha20-poly1305") else ucic:set("openmptcprouter","settings","encryption","other") end @@ -906,6 +914,7 @@ function wizard_add() ucic:set("v2ray","omrout","s_vmess_user_id",v2ray_user) ucic:set("v2ray","omrout","s_vless_user_id",v2ray_user) ucic:set("v2ray","omrout","s_trojan_user_id",v2ray_user) + ucic:set("v2ray","omrout","s_socks_user_id",v2ray_user) ucic:save("v2ray") ucic:commit("v2ray") diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index e9c9ba5fb..b616b2191 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -236,6 +236,7 @@ <% if nixio.fs.access("/etc/init.d/v2ray") then %><% end %> <% if nixio.fs.access("/etc/init.d/v2ray") then %><% end %> <% if nixio.fs.access("/etc/init.d/v2ray") then %><% end %> + <% if nixio.fs.access("/etc/init.d/v2ray") then %><% end %>
@@ -245,7 +246,7 @@ - + <% if nixio.fs.access("/etc/init.d/shadowsocks-libev") then %>
@@ -256,6 +257,8 @@
+ <% end %> + <% if nixio.fs.access("/etc/init.d/v2ray") then %>
@@ -266,6 +269,7 @@
+ <% end %>
diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index 162eaade4..2e8e7177c 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -1425,6 +1425,8 @@ _set_config_from_vps() { v2ray_port="65228" if ([ -n "$v2ray_key" ] && [ "$v2ray_key" != "$(uci -q get v2ray.omrout.s_vmess_user_id)" ]) || ([ -n "$v2ray_port" ] && [ "$v2ray_port" != "$(uci -q get v2ray.omrout.s_vmess.port)" ]); then uci -q batch <<-EOF >/dev/null + set v2ray.omrout.s_socks_user_id="$v2ray_key" + set v2ray.omrout.s_socks_port="$((v2ray_port+1))" set v2ray.omrout.s_trojan_user_id="$v2ray_key" set v2ray.omrout.s_trojan_port="$((v2ray_port+1))" set v2ray.omrout.s_vmess_user_id="$v2ray_key" @@ -1436,6 +1438,7 @@ _set_config_from_vps() { uci -q set v2ray.omrout.s_vmess_address="$vpsip" uci -q set v2ray.omrout.s_vless_address="$vpsip" uci -q set v2ray.omrout.s_trojan_address="$vpsip" + uci -q set v2ray.omrout.s_socks_address="$vpsip" fi uci -q commit v2ray logger -t "OMR-VPS" "V2ray restart..." diff --git a/v2ray-core/files/etc/init.d/v2ray b/v2ray-core/files/etc/init.d/v2ray index c6b29d5fd..671aad1dd 100755 --- a/v2ray-core/files/etc/init.d/v2ray +++ b/v2ray-core/files/etc/init.d/v2ray @@ -290,6 +290,8 @@ inbound_section_validate() { 's_trojan_default_user_level:uinteger' \ 's_trojan_detour_to:string' \ 's_trojan_disable_insecure_encryption:bool:0' \ + 's_socks_client_id:string' \ + 's_socks_client_email:string:"openmptcprouter"' \ 'ss_network:or("tcp", "kcp", "ws", "http", "domainsocket", "quic")' \ 'ss_security:or("none", "tls")' \ 'ss_tls_server_name:host' \ @@ -383,6 +385,10 @@ outbound_section_validate() { 's_trojan_user_security:or("auto", "aes-128-gcm", "chacha20-poly1305", "none")' \ 's_trojan_user_encryption:or("auto", "none")' \ 's_trojan_user_level:uinteger' \ + 's_socks_address:host' \ + 's_socks_port:port' \ + 's_socks_user_id:string' \ + 's_socks_email:string:openmptcprouter' \ 'ss_network:or("tcp", "kcp", "ws", "http", "domainsocket", "quic")' \ 'ss_security:or("none", "tls")' \ 'ss_tls_server_name:host' \ @@ -1003,6 +1009,14 @@ add_inbound_setting() { json_close_object json_close_array # accounts fi + if [ -n "$s_socks_client_id" ] ; then + json_add_array "accounts" + json_add_object "" + json_add_string "user" "$s_socks_email" + json_add_string "pass" "$s_socks_client_id" + json_close_object + json_close_array # accounts + fi json_add_boolean "udp" "$s_socks_udp" @@ -1503,36 +1517,6 @@ add_outbound_setting() { json_add_boolean "ota" "$s_shadowsocks_ota" json_close_object - json_close_array # servers - json_close_object # settings - ;; - "socks") - json_add_object "settings" - json_add_array "servers" - - json_add_object "" - - json_add_string "address" "$s_socks_server_address" - append_server_address "$s_socks_server_address" - - json_add_int "port" "$s_socks_server_port" - - if [ -n "$s_socks_account_user" ] ; then - json_add_array "users" - json_add_object "" - - json_add_string "user" "$s_socks_account_user" - json_add_string "pass" "$s_socks_account_pass" - - test -n "$s_socks_user_level" && \ - json_add_int "level" "$s_socks_user_level" - - json_close_object - json_close_array # users - fi - - json_close_object - json_close_array # servers json_close_object # settings ;; @@ -1610,6 +1594,29 @@ add_outbound_setting() { json_close_array # trojan json_close_object # settings ;; + "socks") + json_add_object "settings" + + json_add_array "servers" + json_add_object "" + + json_add_string "address" "$s_socks_address" + append_server_address "$s_socks_address" + + json_add_int "port" "$s_socks_port" + + json_add_array "users" + json_add_object "" + json_add_string "pass" "$s_socks_user_id" + json_add_string "user" "$s_socks_email" + json_close_object + json_close_array # users + + json_close_object + + json_close_array # socks + json_close_object # settings + ;; esac json_add_object "streamSettings" @@ -1878,7 +1885,7 @@ init_transparent_proxy() { TRANSPARENT_PROXY_PORT="$redirect_port" TRANSPARENT_PROXY_USE_TPROXY="$use_tproxy" - if [ "x$redirect_udp" = "x1" ] && [ "$(uci -q get v2ray.omrout.protocol)" = "vless" ]; then + if [ "x$redirect_udp" = "x1" ] && [ "$(uci -q get v2ray.omrout.protocol)" != "trojan" ] && [ "$(uci -q get v2ray.omrout.protocol)" != "socks" ]; then TRANSPARENT_PROXY_ADDITION="udp" elif [ "x$redirect_dns" = "x1" ] ; then TRANSPARENT_PROXY_ADDITION="dns" @@ -2196,6 +2203,9 @@ rules_up() { elif [ "$(uci -q get v2ray.omrout.protocol)" = "trojan" ]; then OUTBOUND_SERVERS_V4="$(uci -q get v2ray.omrout.s_trojan_address)" OUTBOUND_SERVERS_V6="$(uci -q get v2ray.omrout.s_trojan_address)" + elif [ "$(uci -q get v2ray.omrout.protocol)" = "socks" ]; then + OUTBOUND_SERVERS_V4="$(uci -q get v2ray.omrout.s_socks_address)" + OUTBOUND_SERVERS_V6="$(uci -q get v2ray.omrout.s_socks_address)" fi TRANSPARENT_PROXY_PORT="$(uci -q get v2ray.omr.port)" [ -n "$OUTBOUND_SERVERS_V4" ] || [ -n "$OUTBOUND_SERVERS_V6" ] && { diff --git a/v2ray-core/files/etc/uci-defaults/3010-omr-v2ray b/v2ray-core/files/etc/uci-defaults/3010-omr-v2ray index 2caa7c001..847a6e8d7 100644 --- a/v2ray-core/files/etc/uci-defaults/3010-omr-v2ray +++ b/v2ray-core/files/etc/uci-defaults/3010-omr-v2ray @@ -52,6 +52,12 @@ if [ -z "$(uci -q get v2ray.main)" ]; then set v2ray.omrout.s_trojan_user_security='none' set v2ray.omrout.s_trojan_user_encryption='none' set v2ray.omrout.s_trojan_user_alter_id='0' + set v2ray.omrout.s_socks_address='' + set v2ray.omrout.s_socks_port='65229' + set v2ray.omrout.s_socks_user_id='' + set v2ray.omrout.s_socks_user_security='none' + set v2ray.omrout.s_socks_user_encryption='none' + set v2ray.omrout.s_socks_user_alter_id='0' set v2ray.omrout.ss_network='tcp' set v2ray.omrout.ss_security='tls' set v2ray.omrout.ss_tls_allow_insecure='1' @@ -179,6 +185,17 @@ if [ "$(uci -q get v2ray.omrout.s_trojan_port)" = "" ]; then commit v2ray EOF fi +if [ "$(uci -q get v2ray.omrout.s_socks_port)" = "" ]; then + uci -q batch <<-EOF >/dev/null + set v2ray.omrout.s_socks_address='' + set v2ray.omrout.s_socks_port='65229' + set v2ray.omrout.s_socks_user_id='' + set v2ray.omrout.s_socks_user_security='none' + set v2ray.omrout.s_socks_user_encryption='none' + set v2ray.omrout.s_socks_user_alter_id='0' + commit v2ray + EOF +fi fi exit 0 \ No newline at end of file