init
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
@@ -0,0 +1,23 @@
|
||||
FROM --platform=$TARGETPLATFORM centos:7
|
||||
|
||||
LABEL maintainer="Jrohy <euvkzx@Jrohy.com>"
|
||||
|
||||
ARG TARGETARCH
|
||||
|
||||
ARG VERSION_CHECK="https://api.github.com/repos/Jrohy/trojan/releases/latest"
|
||||
|
||||
ARG DOWNLAOD_URL="https://github.com/Jrohy/trojan/releases/download/"
|
||||
|
||||
ARG SERVICE_URL="https://raw.githubusercontent.com/Jrohy/trojan/master/asset/trojan-web.service"
|
||||
|
||||
ARG SYSTEMCTL_URL="https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py"
|
||||
|
||||
RUN yum install socat bash-completion crontabs iptables openssl unzip -y && \
|
||||
LATEST_VERSION=`curl -H 'Cache-Control: no-cache' -s "$VERSION_CHECK" | grep 'tag_name' | cut -d\" -f4` && \
|
||||
[[ $TARGETARCH =~ "arm64" ]] && ARCH="arm64" || ARCH="amd64" && \
|
||||
curl -fL "$DOWNLAOD_URL/$LATEST_VERSION/trojan-linux-$ARCH" -o /usr/local/bin/trojan && \
|
||||
curl -L $SERVICE_URL -o /etc/systemd/system/trojan-web.service && \
|
||||
curl -L $SYSTEMCTL_URL -o /usr/bin/systemctl && \
|
||||
chmod +x /usr/local/bin/trojan /usr/bin/systemctl && \
|
||||
echo "source <(trojan completion bash)" >> ~/.bashrc && \
|
||||
yum clean all
|
||||
@@ -0,0 +1,12 @@
|
||||
package asset
|
||||
|
||||
import "embed"
|
||||
|
||||
//go:embed trojan-install.sh client.json clash-rules.yaml
|
||||
var f embed.FS
|
||||
|
||||
// GetAsset 获取资源[]byte
|
||||
func GetAsset(name string) []byte {
|
||||
data, _ := f.ReadFile(name)
|
||||
return data
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
# Source: https://github.com/Loyalsoldier/clash-rules
|
||||
rules:
|
||||
- RULE-SET,applications,DIRECT
|
||||
- DOMAIN,clash.razord.top,DIRECT
|
||||
- DOMAIN,yacd.haishan.me,DIRECT
|
||||
- RULE-SET,private,DIRECT
|
||||
- RULE-SET,reject,REJECT
|
||||
- RULE-SET,icloud,DIRECT
|
||||
- RULE-SET,apple,DIRECT
|
||||
- RULE-SET,google,DIRECT
|
||||
- RULE-SET,proxy,PROXY
|
||||
- RULE-SET,direct,DIRECT
|
||||
- RULE-SET,lancidr,DIRECT
|
||||
- RULE-SET,cncidr,DIRECT
|
||||
- RULE-SET,telegramcidr,PROXY
|
||||
- GEOIP,LAN,DIRECT
|
||||
- GEOIP,CN,DIRECT
|
||||
- MATCH,PROXY
|
||||
|
||||
rule-providers:
|
||||
reject:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
|
||||
path: ./ruleset/reject.yaml
|
||||
interval: 86400
|
||||
|
||||
icloud:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt"
|
||||
path: ./ruleset/icloud.yaml
|
||||
interval: 86400
|
||||
|
||||
apple:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt"
|
||||
path: ./ruleset/apple.yaml
|
||||
interval: 86400
|
||||
|
||||
google:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
|
||||
path: ./ruleset/google.yaml
|
||||
interval: 86400
|
||||
|
||||
proxy:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
|
||||
path: ./ruleset/proxy.yaml
|
||||
interval: 86400
|
||||
|
||||
direct:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
|
||||
path: ./ruleset/direct.yaml
|
||||
interval: 86400
|
||||
|
||||
private:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt"
|
||||
path: ./ruleset/private.yaml
|
||||
interval: 86400
|
||||
|
||||
gfw:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt"
|
||||
path: ./ruleset/gfw.yaml
|
||||
interval: 86400
|
||||
|
||||
greatfire:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/greatfire.txt"
|
||||
path: ./ruleset/greatfire.yaml
|
||||
interval: 86400
|
||||
|
||||
tld-not-cn:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt"
|
||||
path: ./ruleset/tld-not-cn.yaml
|
||||
interval: 86400
|
||||
|
||||
telegramcidr:
|
||||
type: http
|
||||
behavior: ipcidr
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt"
|
||||
path: ./ruleset/telegramcidr.yaml
|
||||
interval: 86400
|
||||
|
||||
cncidr:
|
||||
type: http
|
||||
behavior: ipcidr
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
|
||||
path: ./ruleset/cncidr.yaml
|
||||
interval: 86400
|
||||
|
||||
lancidr:
|
||||
type: http
|
||||
behavior: ipcidr
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt"
|
||||
path: ./ruleset/lancidr.yaml
|
||||
interval: 86400
|
||||
|
||||
applications:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt"
|
||||
path: ./ruleset/applications.yaml
|
||||
interval: 86400
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"run_type": "client",
|
||||
"local_addr": "127.0.0.1",
|
||||
"local_port": 1080,
|
||||
"remote_addr": "example.com",
|
||||
"remote_port": 443,
|
||||
"password": [
|
||||
"password1"
|
||||
],
|
||||
"log_level": 1,
|
||||
"ssl": {
|
||||
"verify": true,
|
||||
"verify_hostname": true,
|
||||
"cert": "",
|
||||
"cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA",
|
||||
"cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
|
||||
"sni": "",
|
||||
"alpn": [
|
||||
"h2",
|
||||
"http/1.1"
|
||||
],
|
||||
"reuse_session": true,
|
||||
"session_ticket": false,
|
||||
"curves": ""
|
||||
},
|
||||
"tcp": {
|
||||
"no_delay": true,
|
||||
"keep_alive": true,
|
||||
"reuse_port": false,
|
||||
"fast_open": false,
|
||||
"fast_open_qlen": 20
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="120.1px" height="130.2px" viewBox="0 0 120.1 130.2" style="enable-background:new 0 0 120.1 130.2;" xml:space="preserve"
|
||||
>
|
||||
<g>
|
||||
<linearGradient id="XMLID_2_" gradientUnits="userSpaceOnUse" x1="31.8412" y1="120.5578" x2="110.2402" y2="73.24">
|
||||
<stop offset="0" style="stop-color:#FCEE39"/>
|
||||
<stop offset="1" style="stop-color:#F37B3D"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_3041_" style="fill:url(#XMLID_2_);" d="M118.6,71.8c0.9-0.8,1.4-1.9,1.5-3.2c0.1-2.6-1.8-4.7-4.4-4.9
|
||||
c-1.2-0.1-2.4,0.4-3.3,1.1l0,0l-83.8,45.9c-1.9,0.8-3.6,2.2-4.7,4.1c-2.9,4.8-1.3,11,3.6,13.9c3.4,2,7.5,1.8,10.7-0.2l0,0l0,0
|
||||
c0.2-0.2,0.5-0.3,0.7-0.5l78-54.8C117.3,72.9,118.4,72.1,118.6,71.8L118.6,71.8L118.6,71.8z"/>
|
||||
<linearGradient id="XMLID_3_" gradientUnits="userSpaceOnUse" x1="48.3607" y1="6.9083" x2="119.9179" y2="69.5546">
|
||||
<stop offset="0" style="stop-color:#EF5A6B"/>
|
||||
<stop offset="0.57" style="stop-color:#F26F4E"/>
|
||||
<stop offset="1" style="stop-color:#F37B3D"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_3049_" style="fill:url(#XMLID_3_);" d="M118.8,65.1L118.8,65.1L55,2.5C53.6,1,51.6,0,49.3,0
|
||||
c-4.3,0-7.7,3.5-7.7,7.7v0c0,2.1,0.8,3.9,2.1,5.3l0,0l0,0c0.4,0.4,0.8,0.7,1.2,1l67.4,57.7l0,0c0.8,0.7,1.8,1.2,3,1.3
|
||||
c2.6,0.1,4.7-1.8,4.9-4.4C120.2,67.3,119.7,66,118.8,65.1z"/>
|
||||
<linearGradient id="XMLID_4_" gradientUnits="userSpaceOnUse" x1="52.9467" y1="63.6407" x2="10.5379" y2="37.1562">
|
||||
<stop offset="0" style="stop-color:#7C59A4"/>
|
||||
<stop offset="0.3852" style="stop-color:#AF4C92"/>
|
||||
<stop offset="0.7654" style="stop-color:#DC4183"/>
|
||||
<stop offset="0.957" style="stop-color:#ED3D7D"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_3042_" style="fill:url(#XMLID_4_);" d="M57.1,59.5C57,59.5,17.7,28.5,16.9,28l0,0l0,0c-0.6-0.3-1.2-0.6-1.8-0.9
|
||||
c-5.8-2.2-12.2,0.8-14.4,6.6c-1.9,5.1,0.2,10.7,4.6,13.4l0,0l0,0C6,47.5,6.6,47.8,7.3,48c0.4,0.2,45.4,18.8,45.4,18.8l0,0
|
||||
c1.8,0.8,3.9,0.3,5.1-1.2C59.3,63.7,59,61,57.1,59.5z"/>
|
||||
<linearGradient id="XMLID_5_" gradientUnits="userSpaceOnUse" x1="52.1736" y1="3.7019" x2="10.7706" y2="37.8971">
|
||||
<stop offset="0" style="stop-color:#EF5A6B"/>
|
||||
<stop offset="0.364" style="stop-color:#EE4E72"/>
|
||||
<stop offset="1" style="stop-color:#ED3D7D"/>
|
||||
</linearGradient>
|
||||
<path id="XMLID_3057_" style="fill:url(#XMLID_5_);" d="M49.3,0c-1.7,0-3.3,0.6-4.6,1.5L4.9,28.3c-0.1,0.1-0.2,0.1-0.2,0.2l-0.1,0
|
||||
l0,0c-1.7,1.2-3.1,3-3.9,5.1C-1.5,39.4,1.5,45.9,7.3,48c3.6,1.4,7.5,0.7,10.4-1.4l0,0l0,0c0.7-0.5,1.3-1,1.8-1.6l34.6-31.2l0,0
|
||||
c1.8-1.4,3-3.6,3-6.1v0C57.1,3.5,53.6,0,49.3,0z"/>
|
||||
<g id="XMLID_3008_">
|
||||
<rect id="XMLID_3033_" x="34.6" y="37.4" style="fill:#000000;" width="51" height="51"/>
|
||||
<rect id="XMLID_3032_" x="39" y="78.8" style="fill:#FFFFFF;" width="19.1" height="3.2"/>
|
||||
<g id="XMLID_3009_">
|
||||
<path id="XMLID_3030_" style="fill:#FFFFFF;" d="M38.8,50.8l1.5-1.4c0.4,0.5,0.8,0.8,1.3,0.8c0.6,0,0.9-0.4,0.9-1.2l0-5.3l2.3,0
|
||||
l0,5.3c0,1-0.3,1.8-0.8,2.3c-0.5,0.5-1.3,0.8-2.3,0.8C40.2,52.2,39.4,51.6,38.8,50.8z"/>
|
||||
<path id="XMLID_3028_" style="fill:#FFFFFF;" d="M45.3,43.8l6.7,0v1.9l-4.4,0V47l4,0l0,1.8l-4,0l0,1.3l4.5,0l0,2l-6.7,0
|
||||
L45.3,43.8z"/>
|
||||
<path id="XMLID_3026_" style="fill:#FFFFFF;" d="M55,45.8l-2.5,0l0-2l7.3,0l0,2l-2.5,0l0,6.3l-2.3,0L55,45.8z"/>
|
||||
<path id="XMLID_3022_" style="fill:#FFFFFF;" d="M39,54l4.3,0c1,0,1.8,0.3,2.3,0.7c0.3,0.3,0.5,0.8,0.5,1.4v0
|
||||
c0,1-0.5,1.5-1.3,1.9c1,0.3,1.6,0.9,1.6,2v0c0,1.4-1.2,2.3-3.1,2.3l-4.3,0L39,54z M43.8,56.6c0-0.5-0.4-0.7-1-0.7l-1.5,0l0,1.5
|
||||
l1.4,0C43.4,57.3,43.8,57.1,43.8,56.6L43.8,56.6z M43,59l-1.8,0l0,1.5H43c0.7,0,1.1-0.3,1.1-0.8v0C44.1,59.2,43.7,59,43,59z"/>
|
||||
<path id="XMLID_3019_" style="fill:#FFFFFF;" d="M46.8,54l3.9,0c1.3,0,2.1,0.3,2.7,0.9c0.5,0.5,0.7,1.1,0.7,1.9v0
|
||||
c0,1.3-0.7,2.1-1.7,2.6l2,2.9l-2.6,0l-1.7-2.5h-1l0,2.5l-2.3,0L46.8,54z M50.6,58c0.8,0,1.2-0.4,1.2-1v0c0-0.7-0.5-1-1.2-1
|
||||
l-1.5,0v2H50.6z"/>
|
||||
<path id="XMLID_3016_" style="fill:#FFFFFF;" d="M56.8,54l2.2,0l3.5,8.4l-2.5,0l-0.6-1.5l-3.2,0l-0.6,1.5l-2.4,0L56.8,54z
|
||||
M58.8,59l-0.9-2.3L57,59L58.8,59z"/>
|
||||
<path id="XMLID_3014_" style="fill:#FFFFFF;" d="M62.8,54l2.3,0l0,8.3l-2.3,0L62.8,54z"/>
|
||||
<path id="XMLID_3012_" style="fill:#FFFFFF;" d="M65.7,54l2.1,0l3.4,4.4l0-4.4l2.3,0l0,8.3l-2,0L68,57.8l0,4.6l-2.3,0L65.7,54z"
|
||||
/>
|
||||
<path id="XMLID_3010_" style="fill:#FFFFFF;" d="M73.7,61.1l1.3-1.5c0.8,0.7,1.7,1,2.7,1c0.6,0,1-0.2,1-0.6v0
|
||||
c0-0.4-0.3-0.5-1.4-0.8c-1.8-0.4-3.1-0.9-3.1-2.6v0c0-1.5,1.2-2.7,3.2-2.7c1.4,0,2.5,0.4,3.4,1.1l-1.2,1.6
|
||||
c-0.8-0.5-1.6-0.8-2.3-0.8c-0.6,0-0.8,0.2-0.8,0.5v0c0,0.4,0.3,0.5,1.4,0.8c1.9,0.4,3.1,1,3.1,2.6v0c0,1.7-1.3,2.7-3.4,2.7
|
||||
C76.1,62.5,74.7,62,73.7,61.1z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
@@ -0,0 +1,200 @@
|
||||
#!/bin/bash
|
||||
# source: https://github.com/trojan-gfw/trojan-quickstart
|
||||
set -eo pipefail
|
||||
|
||||
# trojan: 0, trojan-go: 1
|
||||
TYPE=0
|
||||
|
||||
INSTALL_VERSION=""
|
||||
|
||||
while [[ $# > 0 ]];do
|
||||
KEY="$1"
|
||||
case $KEY in
|
||||
-v|--version)
|
||||
INSTALL_VERSION="$2"
|
||||
echo -e "prepare install $INSTALL_VERSION version..\n"
|
||||
shift
|
||||
;;
|
||||
-g|--go)
|
||||
TYPE=1
|
||||
;;
|
||||
*)
|
||||
# unknown option
|
||||
;;
|
||||
esac
|
||||
shift # past argument or value
|
||||
done
|
||||
#############################
|
||||
|
||||
function prompt() {
|
||||
while true; do
|
||||
read -p "$1 [y/N] " yn
|
||||
case $yn in
|
||||
[Yy] ) return 0;;
|
||||
[Nn]|"" ) return 1;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
if [[ $(id -u) != 0 ]]; then
|
||||
echo Please run this script as root.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ARCH=$(uname -m 2> /dev/null)
|
||||
if [[ $ARCH != x86_64 && $ARCH != aarch64 ]];then
|
||||
echo "not support $ARCH machine".
|
||||
exit 1
|
||||
fi
|
||||
if [[ $TYPE == 0 && $ARCH != x86_64 ]];then
|
||||
echo "trojan not support $ARCH machine"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $TYPE == 0 ]];then
|
||||
CHECKVERSION="https://api.github.com/repos/trojan-gfw/trojan/releases/latest"
|
||||
else
|
||||
CHECKVERSION="https://api.github.com/repos/p4gefau1t/trojan-go/releases"
|
||||
fi
|
||||
NAME=trojan
|
||||
if [[ -z $INSTALL_VERSION ]];then
|
||||
VERSION=$(curl -H 'Cache-Control: no-cache' -s "$CHECKVERSION" | grep 'tag_name' | cut -d\" -f4 | sed 's/v//g' | head -n 1)
|
||||
else
|
||||
if [[ -z `curl -H 'Cache-Control: no-cache' -s "$CHECKVERSION"|grep 'tag_name'|grep $INSTALL_VERSION` ]];then
|
||||
echo "no $INSTALL_VERSION version file!"
|
||||
exit 1
|
||||
fi
|
||||
VERSION=`echo "$INSTALL_VERSION"|sed 's/v//g'`
|
||||
fi
|
||||
if [[ $TYPE == 0 ]];then
|
||||
TARBALL="$NAME-$VERSION-linux-amd64.tar.xz"
|
||||
DOWNLOADURL="https://github.com/trojan-gfw/$NAME/releases/download/v$VERSION/$TARBALL"
|
||||
else
|
||||
[[ $ARCH == x86_64 ]] && TARBALL="trojan-go-linux-amd64.zip" || TARBALL="trojan-go-linux-armv8.zip"
|
||||
DOWNLOADURL="https://github.com/p4gefau1t/trojan-go/releases/download/v$VERSION/$TARBALL"
|
||||
fi
|
||||
|
||||
TMPDIR="$(mktemp -d)"
|
||||
INSTALLPREFIX="/usr/bin/$NAME"
|
||||
SYSTEMDPREFIX=/etc/systemd/system
|
||||
|
||||
BINARYPATH="$INSTALLPREFIX/$NAME"
|
||||
CONFIGPATH="/usr/local/etc/$NAME/config.json"
|
||||
SYSTEMDPATH="$SYSTEMDPREFIX/$NAME.service"
|
||||
|
||||
echo Creating $NAME install directory
|
||||
mkdir -p $INSTALLPREFIX /usr/local/etc/$NAME
|
||||
|
||||
echo Entering temp directory $TMPDIR...
|
||||
cd "$TMPDIR"
|
||||
|
||||
echo Downloading $NAME $VERSION...
|
||||
curl -LO --progress-bar "$DOWNLOADURL" || wget -q --show-progress "$DOWNLOADURL"
|
||||
|
||||
echo Unpacking $NAME $VERSION...
|
||||
if [[ $TYPE == 0 ]];then
|
||||
tar xf "$TARBALL"
|
||||
cd "$NAME"
|
||||
else
|
||||
if [[ -z `command -v unzip` ]];then
|
||||
if [[ `command -v dnf` ]];then
|
||||
dnf install unzip -y
|
||||
elif [[ `command -v yum` ]];then
|
||||
yum install unzip -y
|
||||
elif [[ `command -v apt-get` ]];then
|
||||
apt-get install unzip -y
|
||||
fi
|
||||
fi
|
||||
unzip "$TARBALL"
|
||||
mv trojan-go trojan
|
||||
fi
|
||||
|
||||
echo Installing $NAME $VERSION to $BINARYPATH...
|
||||
install -Dm755 "$NAME" "$BINARYPATH"
|
||||
|
||||
echo Installing $NAME server config to $CONFIGPATH...
|
||||
if ! [[ -f "$CONFIGPATH" ]] || prompt "The server config already exists in $CONFIGPATH, overwrite?"; then
|
||||
cat > "$CONFIGPATH" << EOF
|
||||
{
|
||||
"run_type": "server",
|
||||
"local_addr": "0.0.0.0",
|
||||
"local_port": 443,
|
||||
"remote_addr": "127.0.0.1",
|
||||
"remote_port": 80,
|
||||
"password": [
|
||||
"password1",
|
||||
"password2"
|
||||
],
|
||||
"log_level": 1,
|
||||
"ssl": {
|
||||
"cert": "/path/to/certificate.crt",
|
||||
"key": "/path/to/private.key",
|
||||
"key_password": "",
|
||||
"cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384",
|
||||
"cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
|
||||
"prefer_server_cipher": true,
|
||||
"alpn": [
|
||||
"http/1.1"
|
||||
],
|
||||
"alpn_port_override": {
|
||||
"h2": 81
|
||||
},
|
||||
"reuse_session": true,
|
||||
"session_ticket": false,
|
||||
"session_timeout": 600,
|
||||
"plain_http_response": "",
|
||||
"curves": "",
|
||||
"dhparam": ""
|
||||
},
|
||||
"tcp": {
|
||||
"prefer_ipv4": false,
|
||||
"no_delay": true,
|
||||
"keep_alive": true,
|
||||
"reuse_port": false,
|
||||
"fast_open": false,
|
||||
"fast_open_qlen": 20
|
||||
},
|
||||
"mysql": {
|
||||
"enabled": false,
|
||||
"server_addr": "127.0.0.1",
|
||||
"server_port": 3306,
|
||||
"database": "trojan",
|
||||
"username": "trojan",
|
||||
"password": "",
|
||||
"key": "",
|
||||
"cert": "",
|
||||
"ca": ""
|
||||
}
|
||||
}
|
||||
EOF
|
||||
else
|
||||
echo Skipping installing $NAME server config...
|
||||
fi
|
||||
|
||||
if [[ -d "$SYSTEMDPREFIX" ]]; then
|
||||
echo Installing $NAME systemd service to $SYSTEMDPATH...
|
||||
[[ $TYPE == 1 ]] && { NAME="trojan-go"; FLAG="-config"; }
|
||||
cat > "$SYSTEMDPATH" << EOF
|
||||
[Unit]
|
||||
Description=$NAME
|
||||
After=network.target network-online.target nss-lookup.target mysql.service mariadb.service mysqld.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
StandardError=journal
|
||||
ExecStart=$BINARYPATH $FLAG $CONFIGPATH
|
||||
ExecReload=/bin/kill -HUP \$MAINPID
|
||||
Restart=on-failure
|
||||
RestartSec=3s
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
echo Reloading systemd daemon...
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
|
||||
echo Deleting temp directory $TMPDIR...
|
||||
rm -rf "$TMPDIR"
|
||||
|
||||
echo Done!
|
||||
@@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=trojan-web
|
||||
Documentation=https://github.com/Jrohy/trojan
|
||||
After=network.target network-online.target nss-lookup.target mysql.service mariadb.service mysqld.service docker.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
StandardError=journal
|
||||
ExecStart=/usr/local/bin/trojan web
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
Restart=on-failure
|
||||
RestartSec=3s
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user