XRAY_DIR="/etc/xray" LOG_DIR="$XRAY_DIR/expose/log" ASSET_DIR="$XRAY_DIR/expose/asset" CONFIG_DIR="$XRAY_DIR/expose/config" NETWORK_DIR="$XRAY_DIR/expose/network" load_log(){ log_level=`cat $LOG_DIR/level` legal=false [ "$log_level" == "debug" ] && legal=true [ "$log_level" == "info" ] && legal=true [ "$log_level" == "warning" ] && legal=true [ "$log_level" == "error" ] && legal=true [ "$log_level" == "none" ] && legal=true [ "$legal" == false ] && log_level="warning" if [ "$log_level" != "none" ]; then [ ! -s "$LOG_DIR/access.log" ] && touch $LOG_DIR/access.log [ ! -s "$LOG_DIR/error.log" ] && touch $LOG_DIR/error.log fi cat>$XRAY_DIR/config/log.json<$XRAY_DIR/config/inbounds.json<$CONFIG_DIR/dns.json<$CONFIG_DIR/outbounds.json<$CONFIG_DIR/routing.json<$ASSET_DIR/update.sh<<"EOF" GITHUB="github.com" ASSET_REPO="Loyalsoldier/v2ray-rules-dat" VERSION=$(curl --silent "https://api.github.com/repos/$ASSET_REPO/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/'); mkdir -p ./temp/ wget -P ./temp/ "https://$GITHUB/$ASSET_REPO/releases/download/$VERSION/geoip.dat" file_size=`du ./temp/geoip.dat | awk '{print $1}'` [ $file_size != "0" ] && mv -f ./temp/geoip.dat ./ wget -P ./temp/ "https://$GITHUB/$ASSET_REPO/releases/download/$VERSION/geosite.dat" file_size=`du ./temp/geosite.dat | awk '{print $1}'` [ $file_size != "0" ] && mv -f ./temp/geosite.dat ./ rm -rf ./temp/ EOF chmod +x $ASSET_DIR/update.sh } load_bypass_ipv4(){ cat>"$NETWORK_DIR/bypass/ipv4"<"$NETWORK_DIR/bypass/ipv6"<"$NETWORK_DIR/interface/ipv4"<"$NETWORK_DIR/interface/ipv6"< /etc/resolv.conf while read -r row do echo "nameserver $row" >> /etc/resolv.conf done < $NETWORK_DIR/dns } mkdir -p $LOG_DIR mkdir -p $ASSET_DIR mkdir -p $CONFIG_DIR mkdir -p $NETWORK_DIR mkdir -p $XRAY_DIR/config load_log load_inbounds [ ! -s "$CONFIG_DIR/outbounds.json" ] && load_outbounds [ ! -s "$CONFIG_DIR/routing.json" ] && load_routing [ ! -s "$CONFIG_DIR/dns.json" ] && load_dns cp $CONFIG_DIR/*.json $XRAY_DIR/config/ [ ! -s "$ASSET_DIR/geoip.dat" ] && cp $XRAY_DIR/asset/geoip.dat $ASSET_DIR/ [ ! -s "$ASSET_DIR/geosite.dat" ] && cp $XRAY_DIR/asset/geosite.dat $ASSET_DIR/ [ ! -s "$ASSET_DIR/update.sh" ] && load_asset_update cp $ASSET_DIR/*.dat $XRAY_DIR/asset/ mkdir -p $NETWORK_DIR/bypass mkdir -p $NETWORK_DIR/interface [ -s "$NETWORK_DIR/dns" ] && init_dns [ ! -f "$NETWORK_DIR/bypass/ipv4" ] && load_bypass_ipv4 [ ! -f "$NETWORK_DIR/bypass/ipv6" ] && load_bypass_ipv6 [ -f "$NETWORK_DIR/interface/ignore" ] && exit [ ! -s "$NETWORK_DIR/interface/ipv4" ] && load_network_ipv4 [ ! -s "$NETWORK_DIR/interface/ipv6" ] && load_network_ipv6 init_network