diff --git a/Dockerfile b/Dockerfile index 3fd3b03..46c545a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -46,18 +46,23 @@ RUN apk --no-cache add bash openssl curl jq moreutils \ RUN sed -i "s/^socks4.*/socks5\t127.0.0.1 1080/g" /etc/proxychains/proxychains.conf -ADD proxy-ltx.sh /proxy-ltx.sh -ADD proxy-ltt.sh /proxy-ltt.sh -ADD proxy-ltpw.sh /proxy-ltpw.sh -ADD proxy-lttw.sh /proxy-lttw.sh -ADD proxy-ltpg.sh /proxy-ltpg.sh -ADD proxy-lttg.sh /proxy-lttg.sh -ADD proxy-mtt.sh /proxy-mtt.sh -ADD proxy-mtpw.sh /proxy-mtpw.sh -ADD proxy-mttw.sh /proxy-mttw.sh -ADD proxy-ttt.sh /proxy-ttt.sh -ADD proxy-ttpw.sh /proxy-ttpw.sh -ADD proxy-tttw.sh /proxy-tttw.sh +ADD proxy-lx.sh /proxy-lx.sh +ADD proxy-ls.sh /proxy-ls.sh +ADD proxy-ms.sh /proxy-ms.sh +ADD proxy-ts.sh /proxy-ts.sh + +ADD proxy-lsg.sh /proxy-lsg.sh +ADD proxy-lss.sh /proxy-lss.sh +ADD proxy-lsw.sh /proxy-lsw.sh +ADD proxy-msw.sh /proxy-msw.sh +ADD proxy-tsw.sh /proxy-tsw.sh + +ADD proxy-lpg.sh /proxy-lpg.sh +ADD proxy-lps.sh /proxy-lps.sh +ADD proxy-lpw.sh /proxy-lpw.sh +ADD proxy-mpw.sh /proxy-mpw.sh +ADD proxy-tpw.sh /proxy-tpw.sh + ADD status.sh /status.sh ADD run.sh /run.sh diff --git a/README.md b/README.md index b6c3158..9b58a94 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ The following command will: ```shell $ docker run --name proxy-xray -p 2080:1080 -p 2080:1080/udp -p 8223:8123 -p 65353:53/udp \ --d samuelhbne/proxy-xray --ltx myid@mydomain.duckdns.org:443 --cn-direct --dns-local-cn +-d samuelhbne/proxy-xray --lx myid@mydomain.duckdns.org:443 --cn-direct --dns-local-cn ... ``` @@ -76,30 +76,32 @@ Xray-URL: vless://myid@mydomain.duckdns.org:443?security=xtls&type=tcp&flow=xtls ```shell $ docker run --rm samuelhbne/proxy-xray proxy-xray - --ltx id@host:port[,s=sniname.org] - --ltt id@host:port[,s=sniname.org] - --ltpw id@host:port:/webpath - --lttw id@host:port:/webpath[,s=sniname.org] - --ltpg id@host:port:svcname - --lttg id@host:port:svcname[,s=sniname.org] - --mtt id@host:port[,s=sniname.org] - --mtpw id@host:port:/webpath - --mttw id@host:port:/webpath[,s=sniname.org] - --ttt password@host:port[,s=sniname.org] - --ttpw password@host:port:/webpath - --tttw password@host:port:/webpath[,s=sniname.org] - -d|--debug [Optional] Start in debug mode with verbose output - -i|--stdin [Optional] Read config from stdin instead of auto generation - --dns [Optional] Designated upstream DNS server IP, 1.1.1.1 will be applied by default - --dns-local-cn [Optional] Enable China-accessible domains to be resolved in China - --domain-direct [Optional] Add a domain rule for direct routing, likegeosite:geosite:geolocation-cn - --domain-proxy [Optional] Add a domain rule for proxy routing, like twitter.com or geosite:google-cn - --domain-block [Optional] Add a domain rule for block routing, like geosite:category-ads-all - --ip-direct [Optional] Add a ip-addr rule for direct routing, like 114.114.114.114/32 or geoip:cn - --ip-proxy [Optional] Add a ip-addr rule for proxy routing, like 1.1.1.1/32 or geoip:netflix - --ip-block [Optional] Add a ip-addr rule for block routing, like geoip:private - --cn-direct [Optional] Add routing rules to avoid domains and IPs located in China being proxied - --rules-path [Optional] Folder path contents geoip.dat, geosite.dat and other rule files + --lx id@host:port[,s=sniname.org] + --ls id@host:port[,s=sniname.org] + --ms id@host:port[,s=sniname.org] + --ts password@host:port[,s=sniname.org] + --lsg id@host:port:svcname[,s=sniname.org] + --lss id@host:port:/webpath[,s=sniname.org] + --lsw id@host:port:/wspath[,s=sniname.org] + --msw id@host:port:/wspath[,s=sniname.org] + --tsw password@host:port:/wspath[,s=sniname.org] + --lpg id@host:port:svcname + --lps id@host:port:/webpath + --lpw id@host:port:/wspath + --mpw id@host:port:/wspath + --tpw password@host:port:/wspath + -d|--debug Start in debug mode with verbose output + -i|--stdin Read config from stdin instead of auto generation + --dns Designated upstream DNS server IP, 1.1.1.1 will be applied by default + --dns-local-cn Enable China-accessible domains to be resolved in China + --domain-direct Add a domain rule for direct routing, likegeosite:geosite:geolocation-cn + --domain-proxy Add a domain rule for proxy routing, like twitter.com or geosite:google-cn + --domain-block Add a domain rule for block routing, like geosite:category-ads-all + --ip-direct Add a ip-addr rule for direct routing, like 114.114.114.114/32 or geoip:cn + --ip-proxy Add a ip-addr rule for proxy routing, like 1.1.1.1/32 or geoip:netflix + --ip-block Add a ip-addr rule for block routing, like geoip:private + --cn-direct Add routing rules to avoid domains and IPs located in China being proxied + --rules-path Folder path contents geoip.dat, geosite.dat and other rule files ``` ## How to stop and remove the running container @@ -119,7 +121,7 @@ The following instruction connect to mydomain.duckdns.org port 443 in Vless+TCP+ ```shell $ docker run --name proxy-xray -p 1080:1080 -p 1080:1080/udp -d samuelhbne/proxy-xray \ ---ltx myid@12.34.56.78:443,serverName=mydomain.duckdns.org --cn-direct +--lx myid@12.34.56.78:443,serverName=mydomain.duckdns.org --cn-direct ``` ### 2. Connect to Vless+TCP+TLS+Websocket server @@ -128,7 +130,7 @@ The following instruction connect to Xray server port 443 in Vless+TCP+TLS+Webso ```shell $ docker run --name proxy-xray -p 1080:1080 -d samuelhbne/proxy-xray \ ---lttw myid@mydomain.duckdns.org:443:/websocket \ +--lsw myid@mydomain.duckdns.org:443:/websocket \ --domain-proxy geosite:apple-cn --domain-direct geosite:geolocation-cn ``` @@ -138,7 +140,7 @@ The following instruction connect to Xray server port 443 in Vless+TCP+TLS+gRPC ```shell $ docker run --name proxy-xray -p 1080:1080 samuelhbne/proxy-xray \ ---lttg myid@mydomain.duckdns.org:443:gsvc --domain-proxy geosite:geolocation-\!cn +--lsg myid@mydomain.duckdns.org:443:gsvc --domain-proxy geosite:geolocation-\!cn ``` ### 4. Connect to TCP+TLS+Trojan server @@ -152,7 +154,7 @@ $ wget -c -t3 -T30 https://github.com/Loyalsoldier/v2ray-rules-dat/releases/late $ wget -c -t3 -T30 https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat $ wget -c -t3 -T30 https://github.com/SamadiPour/iran-hosted-domains/releases/download/202108210015/iran.dat $ docker run --name proxy-xray -p 1080:1080 -v /tmp/rules:/opt/rules -d samuelhbne/proxy-xray \ ---ttt trojan_pass@mydomain.duckdns.org:8443 \ +--ts trojan_pass@mydomain.duckdns.org:8443 \ --rules-path /opt/rules --domain-direct ext:iran.dat:ir --ip-direct geoip:ir ``` @@ -162,7 +164,7 @@ The following instruction start proxy-xray in debug mode. Output Xray config fil ```shell $ docker run --rm -p 1080:1080 samuelhbne/proxy-xray \ ---mttw myid@mydomain.duckdns.org:443:/websocket --debug +--msw myid@mydomain.duckdns.org:443:/websocket --debug ``` ### NOTE 4 diff --git a/proxy-ltpg.sh b/proxy-lpg.sh similarity index 96% rename from proxy-ltpg.sh rename to proxy-lpg.sh index 7c2efff..dedb4f7 100755 --- a/proxy-ltpg.sh +++ b/proxy-lpg.sh @@ -1,7 +1,7 @@ #!/bin/bash usage() { - >&2 echo "Usage: proxy-ltpg " + >&2 echo "Usage: proxy-lpg " } if [ -z "$1" ]; then diff --git a/proxy-lps.sh b/proxy-lps.sh new file mode 100755 index 0000000..fb75c51 --- /dev/null +++ b/proxy-lps.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +usage() { + >&2 echo "Usage: proxy-lps " +} + +if [ -z "$1" ]; then + >&2 echo "Missing options" + usage + exit 1 +fi + +# id@domain.com:443:/webpath +options=(`echo $1 |tr '@' ' '`) +id="${options[0]}" +options=(`echo ${options[1]} |tr ':' ' '`) +host="${options[0]}" +port="${options[1]}" +path="${options[2]}" + +if [ -z "${id}" ]; then + >&2 echo "Error: uuid undefined." + usage + exit 1 +fi + +if [ -z "${host}" ]; then + >&2 echo "Error: destination host undefined." + usage + exit 1 +fi + +if [ -z "${port}" ]; then + port=80 +fi + +if ! [ "${port}" -eq "${port}" ] 2>/dev/null; then >&2 echo "Port number must be numeric"; exit 1; fi + +Jusers=`echo '{}' |jq --arg uuid "${id}" '. += {"id":$uuid, "encryption":"none", "level":0}'` + +Jvnext=`echo '{}' | jq --arg host "${host}" --arg port "${port}" --argjson juser "${Jusers}" \ +'. += {"address":$host, "port":($port | tonumber), "users":[$juser]}' ` + +JstreamSettings=`echo '{}' | jq --arg serverName "${serverName}" --arg fingerprint "${fingerprint}" --arg path "${path}" \ +'. += {"network":"splithttp", "security":"none", "splithttpSettings":{"path":$path}}' ` + +Jproxy=`echo '{}' | jq --arg host "${host}" --argjson jvnext "${Jvnext}" --argjson jstreamSettings "${JstreamSettings}" \ +'. += { "tag": "proxy", "protocol":"vless", "settings":{"vnext":[$jvnext]}, "streamSettings":$jstreamSettings }' ` +Jdirect='{"tag": "direct", "protocol": "freedom", "settings": {}}' +Jblocked='{"tag": "blocked", "protocol": "blackhole", "settings": {}}' + +jroot=`echo '{}' | jq --argjson jproxy "${Jproxy}" --argjson jdirect "${Jdirect}" --argjson jblocked "${Jblocked}" \ +'. += {"log":{"loglevel":"warning"}, "outbounds":[$jproxy, $jdirect, $jblocked]}' ` + +echo "$jroot" +exit 0 diff --git a/proxy-ltpw.sh b/proxy-lpw.sh similarity index 96% rename from proxy-ltpw.sh rename to proxy-lpw.sh index cbc4c20..51341bb 100755 --- a/proxy-ltpw.sh +++ b/proxy-lpw.sh @@ -1,7 +1,7 @@ #!/bin/bash usage() { - >&2 echo "Usage: proxy-ltpw " + >&2 echo "Usage: proxy-lpw " } if [ -z "$1" ]; then diff --git a/proxy-ltt.sh b/proxy-ls.sh similarity index 95% rename from proxy-ltt.sh rename to proxy-ls.sh index 4b49501..c6d7b78 100755 --- a/proxy-ltt.sh +++ b/proxy-ls.sh @@ -1,7 +1,7 @@ #!/bin/bash usage() { - >&2 echo "Usage: proxy-ltt [,serverName=x.org][,fingerprint=safari]" + >&2 echo "Usage: proxy-ls [,serverName=x.org][,fingerprint=safari]" } if [ -z "$1" ]; then diff --git a/proxy-lttg.sh b/proxy-lsg.sh similarity index 95% rename from proxy-lttg.sh rename to proxy-lsg.sh index b302683..7ed0735 100755 --- a/proxy-lttg.sh +++ b/proxy-lsg.sh @@ -1,7 +1,7 @@ #!/bin/bash usage() { - >&2 echo "Usage: proxy-lttg [,serverName=x.org][,fingerprint=safari]" + >&2 echo "Usage: proxy-lsg [,serverName=x.org][,fingerprint=safari]" } if [ -z "$1" ]; then diff --git a/proxy-lss.sh b/proxy-lss.sh new file mode 100755 index 0000000..8e44091 --- /dev/null +++ b/proxy-lss.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +usage() { + >&2 echo "Usage: proxy-lss [,serverName=x.org][,fingerprint=safari]" +} + +if [ -z "$1" ]; then + >&2 echo "Missing options" + usage + exit 1 +fi + +# id@domain.com:443:/webpath,serverName=x.org,fingerprint=safari +args=(`echo $1 |tr ',' ' '`) +dest="${args[0]}" +for ext_opt in "${args[@]}" +do + kv=(`echo $ext_opt |tr '=' ' '`) + case "${kv[0]}" in + s|serverName) + serverName="${kv[1]}" + ;; + f|fingerprint) + fingerprint="${kv[1]}" + ;; + esac +done +options=(`echo $dest |tr '@' ' '`) +id="${options[0]}" +options=(`echo ${options[1]} |tr ':' ' '`) +host="${options[0]}" +port="${options[1]}" +path="${options[2]}" + +if [ -z "${serverName}" ]; then serverName=${host}; fi +if [ -z "${fingerprint}" ]; then fingerprint="safari"; fi + +if [ -z "${id}" ]; then + >&2 echo "Error: uuid undefined." + usage + exit 1 +fi + +if [ -z "${host}" ]; then + >&2 echo "Error: destination host undefined." + usage + exit 1 +fi + +if [ -z "${port}" ]; then + port=443 +fi + +if ! [ "${port}" -eq "${port}" ] 2>/dev/null; then >&2 echo "Port number must be numeric"; exit 1; fi + +Jusers=`echo '{}' |jq --arg uuid "${id}" '. += {"id":$uuid, "encryption":"none", "level":0}'` + +Jvnext=`echo '{}' | jq --arg host "${host}" --arg port "${port}" --argjson juser "${Jusers}" \ +'. += {"address":$host, "port":($port | tonumber), "users":[$juser]}' ` + +JstreamSettings=`echo '{}' | jq --arg serverName "${serverName}" --arg fingerprint "${fingerprint}" --arg path "${path}" \ +'. += {"network":"splithttp", "security":"tls", "tlsSettings":{"serverName":$serverName, "fingerprint":$fingerprint}, "splithttpSettings":{"path":$path}}' ` + +Jproxy=`echo '{}' | jq --arg host "${host}" --argjson jvnext "${Jvnext}" --argjson jstreamSettings "${JstreamSettings}" \ +'. += { "tag": "proxy", "protocol":"vless", "settings":{"vnext":[$jvnext]}, "streamSettings":$jstreamSettings }' ` +Jdirect='{"tag": "direct", "protocol": "freedom", "settings": {}}' +Jblocked='{"tag": "blocked", "protocol": "blackhole", "settings": {}}' + +jroot=`echo '{}' | jq --argjson jproxy "${Jproxy}" --argjson jdirect "${Jdirect}" --argjson jblocked "${Jblocked}" \ +'. += {"log":{"loglevel":"warning"}, "outbounds":[$jproxy, $jdirect, $jblocked]}' ` + +echo "$jroot" +exit 0 diff --git a/proxy-lttw.sh b/proxy-lsw.sh similarity index 95% rename from proxy-lttw.sh rename to proxy-lsw.sh index f4907ec..97b073b 100755 --- a/proxy-lttw.sh +++ b/proxy-lsw.sh @@ -1,7 +1,7 @@ #!/bin/bash usage() { - >&2 echo "Usage: proxy-lttw [,serverName=x.org][,fingerprint=safari]" + >&2 echo "Usage: proxy-lsw [,serverName=x.org][,fingerprint=safari]" } if [ -z "$1" ]; then diff --git a/proxy-ltx.sh b/proxy-lx.sh similarity index 95% rename from proxy-ltx.sh rename to proxy-lx.sh index 9ef6366..f9b89f6 100755 --- a/proxy-ltx.sh +++ b/proxy-lx.sh @@ -1,7 +1,7 @@ #!/bin/bash usage() { - >&2 echo "Usage: proxy-ltx [,serverName=x.org][,fingerprint=safari]" + >&2 echo "Usage: proxy-lx [,serverName=x.org][,fingerprint=safari]" } if [ -z "$1" ]; then diff --git a/proxy-mtpw.sh b/proxy-mpw.sh similarity index 96% rename from proxy-mtpw.sh rename to proxy-mpw.sh index 1d94c7a..55d51f0 100755 --- a/proxy-mtpw.sh +++ b/proxy-mpw.sh @@ -1,7 +1,7 @@ #!/bin/bash usage() { - >&2 echo "Usage: proxy-mtpw " + >&2 echo "Usage: proxy-mpw " } if [ -z "$1" ]; then diff --git a/proxy-mtt.sh b/proxy-ms.sh similarity index 95% rename from proxy-mtt.sh rename to proxy-ms.sh index 29613fc..1a8fcb7 100755 --- a/proxy-mtt.sh +++ b/proxy-ms.sh @@ -1,7 +1,7 @@ #!/bin/bash usage() { - >&2 echo "Usage: proxy-mtt [,serverName=x.org][,fingerprint=safari]" + >&2 echo "Usage: proxy-ms [,serverName=x.org][,fingerprint=safari]" } if [ -z "$1" ]; then diff --git a/proxy-mttw.sh b/proxy-msw.sh similarity index 95% rename from proxy-mttw.sh rename to proxy-msw.sh index e6cdf59..72d5a55 100755 --- a/proxy-mttw.sh +++ b/proxy-msw.sh @@ -1,7 +1,7 @@ #!/bin/bash usage() { - >&2 echo "Usage: proxy-mttw [,serverName=x.org][,fingerprint=safari]" + >&2 echo "Usage: proxy-msw [,serverName=x.org][,fingerprint=safari]" } if [ -z "$1" ]; then diff --git a/proxy-ttpw.sh b/proxy-tpw.sh similarity index 96% rename from proxy-ttpw.sh rename to proxy-tpw.sh index d9a00cd..1bc20b2 100755 --- a/proxy-ttpw.sh +++ b/proxy-tpw.sh @@ -1,7 +1,7 @@ #!/bin/bash usage() { - >&2 echo "Usage: proxy-ttpw " + >&2 echo "Usage: proxy-tpw " } if [ -z "$1" ]; then diff --git a/proxy-ttt.sh b/proxy-ts.sh similarity index 95% rename from proxy-ttt.sh rename to proxy-ts.sh index 24f7e4e..2a44e77 100755 --- a/proxy-ttt.sh +++ b/proxy-ts.sh @@ -1,7 +1,7 @@ #!/bin/bash usage() { - >&2 echo "Usage: proxy-ttt [,serverName=x.org][,fingerprint=safari]" + >&2 echo "Usage: proxy-ts [,serverName=x.org][,fingerprint=safari]" } if [ -z "$1" ]; then diff --git a/proxy-tttw.sh b/proxy-tsw.sh similarity index 95% rename from proxy-tttw.sh rename to proxy-tsw.sh index 71fc00f..33078ac 100755 --- a/proxy-tttw.sh +++ b/proxy-tsw.sh @@ -1,7 +1,7 @@ #!/bin/bash usage() { - >&2 echo "Usage: proxy-tttw [,serverName=x.org][,fingerprint=safari]" + >&2 echo "Usage: proxy-tsw [,serverName=x.org][,fingerprint=safari]" } if [ -z "$1" ]; then diff --git a/run.sh b/run.sh index d9702ea..62b0ec6 100755 --- a/run.sh +++ b/run.sh @@ -6,44 +6,44 @@ XCONF=/tmp/proxy-xray.json usage() { echo "proxy-xray " - echo " --ltx id@host:port[,s=sniname.org]" - echo " --ltt id@host:port[,s=sniname.org]" - echo " --ltpw id@host:port:/webpath" - echo " --lttw id@host:port:/webpath[,s=sniname.org]" - echo " --ltpg id@host:port:svcname" - echo " --lttg id@host:port:svcname[,s=sniname.org]" - echo " --mtt id@host:port[,s=sniname.org]" - echo " --mtpw id@host:port:/webpath" - echo " --mttw id@host:port:/webpath[,s=sniname.org]" - echo " --ttt password@host:port[,s=sniname.org]" - echo " --ttpw password@host:port:/webpath" - echo " --tttw password@host:port:/webpath[,s=sniname.org]" -# echo " --ssa password:method@host:port" -# echo " --sst password:method@host:port" - echo " -d|--debug [Optional] Start in debug mode with verbose output" - echo " -i|--stdin [Optional] Read config from stdin instead of auto generation" - echo " --dns [Optional] Designated upstream DNS server IP, 1.1.1.1 will be applied by default" -# echo " --dns-local [Optional] Enable designated domain conf file. Like apple.china.conf" - echo " --dns-local-cn [Optional] Enable China-accessible domains to be resolved in China" - echo " --domain-direct [Optional] Add a domain rule for direct routing, likegeosite:geosite:geolocation-cn" - echo " --domain-proxy [Optional] Add a domain rule for proxy routing, like twitter.com or geosite:google-cn" - echo " --domain-block [Optional] Add a domain rule for block routing, like geosite:category-ads-all" - echo " --ip-direct [Optional] Add a ip-addr rule for direct routing, like 114.114.114.114/32 or geoip:cn" - echo " --ip-proxy [Optional] Add a ip-addr rule for proxy routing, like 1.1.1.1/32 or geoip:netflix" - echo " --ip-block [Optional] Add a ip-addr rule for block routing, like geoip:private" - echo " --cn-direct [Optional] Add routing rules to avoid domains and IPs located in China being proxied" - echo " --rules-path [Optional] Folder path contents geoip.dat, geosite.dat and other rule files" + echo " --lx id@host:port[,s=sniname.org]" + echo " --ls id@host:port[,s=sniname.org]" + echo " --ms id@host:port[,s=sniname.org]" + echo " --ts password@host:port[,s=sniname.org]" + echo " --lsg id@host:port:svcname[,s=sniname.org]" + echo " --lss id@host:port:/webpath[,s=sniname.org]" + echo " --lsw id@host:port:/wspath[,s=sniname.org]" + echo " --msw id@host:port:/wspath[,s=sniname.org]" + echo " --tsw password@host:port:/wspath[,s=sniname.org]" + echo " --lpg id@host:port:svcname" + echo " --lps id@host:port:/webpath" + echo " --lpw id@host:port:/wspath" + echo " --mpw id@host:port:/wspath" + echo " --tpw password@host:port:/wspath" + echo " -d|--debug Start in debug mode with verbose output" + echo " -i|--stdin Read config from stdin instead of auto generation" + echo " --dns Designated upstream DNS server IP, 1.1.1.1 will be applied by default" +# echo " --dns-local Enable designated domain conf file. Like apple.china.conf" + echo " --dns-local-cn Enable China-accessible domains to be resolved in China" + echo " --domain-direct Add a domain rule for direct routing, likegeosite:geosite:geolocation-cn" + echo " --domain-proxy Add a domain rule for proxy routing, like twitter.com or geosite:google-cn" + echo " --domain-block Add a domain rule for block routing, like geosite:category-ads-all" + echo " --ip-direct Add a ip-addr rule for direct routing, like 114.114.114.114/32 or geoip:cn" + echo " --ip-proxy Add a ip-addr rule for proxy routing, like 1.1.1.1/32 or geoip:netflix" + echo " --ip-block Add a ip-addr rule for block routing, like geoip:private" + echo " --cn-direct Add routing rules to avoid domains and IPs located in China being proxied" + echo " --rules-path Folder path contents geoip.dat, geosite.dat and other rule files" } Jrules='{"rules":[]}' -TEMP=`getopt -o di --long ltx:,ltt:,ltpw:,lttw:,ltpg:,lttg:,mtt:,mtpw:,mttw:,ttt:,ttpw:,tttw:,ssa:,sst:,stdin,debug,dns:,dns-local:,dns-local-cn,domain-direct:,domain-proxy:,domain-block:,ip-direct:,ip-proxy:,ip-block:,cn-direct,rules-path: -n "$0" -- $@` +TEMP=`getopt -o di --long lx:,ls:,ms:,ts:,lsg:,lss:,lsw:,msw:,tsw:,lpg:,lps:,lpw:,mpw:,tpw:,stdin,debug,dns:,dns-local:,dns-local-cn,domain-direct:,domain-proxy:,domain-block:,ip-direct:,ip-proxy:,ip-block:,cn-direct,rules-path: -n "$0" -- $@` if [ $? != 0 ] ; then usage; exit 1 ; fi eval set -- "$TEMP" while true ; do case "$1" in - --ltx|--ltt|--ltpw|--lttw|--ltpg|--lttg|--mtt|--mtpw|--mttw|--ttt|--ttpw|--tttw|--ssa|--sst) + --lx|--ls|--ms|--ts|--lsg|--lss|--lsw|--msw|--tsw|--lpg|--lps|--lpw|--mpw|--tpw) subcmd=`echo "$1"|tr -d "\-\-"` $DIR/proxy-${subcmd}.sh $2 >$XCONF if [ $? != 0 ]; then