Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

增加install_debian.sh 脚本 #1

Open
wants to merge 41 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
dbc9bdb
add install_debian.sh
yuansuyi-dusun Nov 7, 2018
0077f45
install_debian.sh test ok on GCP debian
Nov 7, 2018
aef2bce
typo in install_debian.sh
yuansuyi-dusun Nov 7, 2018
14c3e09
add peer , delete peer
yuansuyi-dusun Nov 7, 2018
63facfe
store lastip
yuansuyi-dusun Nov 7, 2018
8b1b3cb
typo
yuansuyi-dusun Nov 7, 2018
c780e1b
test ok on GCP with add /del/reconfigure
Nov 7, 2018
1ffcaea
修改提示信息
yuansuyi-dusun Nov 7, 2018
6c525fb
更新 README
yuansuyi-dusun Nov 7, 2018
37cbdbf
make sure dig is insalled
yuansuyi-dusun Nov 7, 2018
6c59175
server_pubkey 保存错误
yuansuyi-dusun Nov 7, 2018
e3dd846
server pubkey 从 wg 命令获取
yuansuyi-dusun Nov 7, 2018
f3545b8
安装linux-headers, 适配BWG debian9
yuansuyi-dusun Nov 8, 2018
8641b27
CentOS 7
yuansuyi-dusun Nov 8, 2018
089464d
增加 udp2raw 支持
yuansuyi-dusun Nov 15, 2018
cab7b4f
udp2raw加入后,MTU改为1200
yuansuyi-dusun Nov 15, 2018
3e8b093
udp2raw配置默认增加路由规则
yuansuyi-dusun Nov 15, 2018
ed17cdc
增加udp2raw接口时,提示输入局域网网段
yuansuyi-dusun Nov 15, 2018
a8932b7
局域网IP
yuansuyi-dusun Nov 15, 2018
786321f
局域网IP2
yuansuyi-dusun Nov 15, 2018
2266bc1
PreUp,PostDown 等分行写
yuansuyi-dusun Nov 16, 2018
69ef44a
透明代理: wireguard + udp2raw + dnsmasq-gfwlsit
yuansuyi-dusun Nov 20, 2018
ff1a5a3
install_debian.sh 更名为wg.sh
yuansuyi-dusun Nov 20, 2018
51507f0
Update README.md
ysy Nov 20, 2018
58fce62
Update README.md
ysy Nov 20, 2018
8ab95ec
Update README.md
ysy Nov 20, 2018
1150b87
Update README.md
ysy Nov 21, 2018
06fb92a
修改crontab 错误
yuansuyi-dusun Dec 3, 2018
6259332
Merge branch 'master' of github.com:ysy/wireguard
yuansuyi-dusun Dec 3, 2018
0e08b3c
create gfwlist ipset
yuansuyi-dusun Dec 4, 2018
bae0748
fix: dig ipv4
yuansuyi-dusun Jan 21, 2019
4f8bc49
fix: udp2raw client config: wg0 replaced with %i
yuansuyi-dusun Jan 21, 2019
9a716c9
Update README.md
ysy Jan 21, 2019
9df49f2
Update README.md
ysy Jan 22, 2019
ccc1281
fix: 加入udp2raw接口后重启 wg0
yuansuyi-dusun Jan 22, 2019
d91a5c2
Merge branch 'master' of github.com:ysy/wireguard
yuansuyi-dusun Jan 22, 2019
379f198
fix: add psmisc for killall command
yuansuyi-dusun Jan 22, 2019
d4bf4e9
fix: 默认接口不一定是eth0
yuansuyi-dusun Jan 22, 2019
1d780ea
fix: ubuntu
yuansuyi-dusun May 9, 2019
10b8721
fix missing linux-headers
yuansuyi-dusun May 9, 2019
3b924ea
to fit snoylogy
yuansuyi-dusun May 13, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 31 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,34 @@
# wireguard一键脚本
#### 适用于CentOS7
#### wireguard_install.sh 单用户版,如需增加用户需要手动增加
# wireguard一键配置脚本 (含服务器端与客户端)

## 初次安装
wget --no-check-certificate https://raw.githubusercontent.com/ysy/wireguard/master/wg.sh && chmod +x wg.sh && ./wg.sh

选择 1.重新安装配置Wireguard <br>
配置完成后,会以红字显示第一个客户端配置文件的内容,拷贝到客户端或生成二维码即可使用。


## 增加用户
选择 2.增加用户 <br>
输入用户名,即会生成客户端配置文件 <br>

## 删除用户
选择 4.删除用户 <br>
输入用户名,即可删除 <br>

## 配置透明代理软路由
目前透明代理软路由只在Ubuntu系统上测试过 <br>
### 客户端配置
wget --no-check-certificate https://raw.githubusercontent.com/ysy/wireguard/master/install_tproxy.sh && chmod +x install_tproxy.sh && ./install_tproxy.sh <br>

### 服务器端配置
选择 3. 增加用户(udp2raw配置) <br>
输入用户名,再输入软路由下设的局域网地址段 (如: 192.168.0.0) <br>
完成后,重启下wg0接口(wg-quick down wg0 && wg-quick up wg0)<br>
脚本会自动生成客户端的wg配置文件,将其文件拷贝至软路由(Ubuntu系统)的 /etc/wireguard/wg0.conf <br>
在软路由上运行 wg-quick up wg0 <br>
需要将终端机的网关和DNS设为软路由的地址(如: 192.168.0.1 或 192.168.0.2 等) <br>
这个配置会根据域名是否在GfwList中来做分流,所以必须将终端机的DNS为软路由的地址。 <br>
另外,在软路由的wg0口上没有做NAT,整个局域网的地址段跟服务器是相通的,可以在服务器上PING通局域网上的主机。如果配置多个客户端时,注意局域网地址段不能一样,否则无法路由。如果有多个局域网接入,这些局域网也是相通的,如果认为有安全风险,请自行增加iptables规则。<br>



93 changes: 93 additions & 0 deletions install_tproxy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
#!/bin/bash
# 配置透明代理路由器

# 需要与Wireguard一键脚本所生成的UDP2RAW客户端配置文件相配合
# 适合Debian/Ubuntu 桌面/服务器系统,用于做软路由透明代理
# 需要使用root权限运行
GFWLIST_IPSET=gfwlist
GFWLIST_TIMEOUT=3600

install_udp2raw()
{
[ -e /usr/local/bin/udp2raw ] && return ;

rm -rf udp2raw-tunnel
git clone https://github.com/wangyu-/udp2raw-tunnel.git
cd udp2raw-tunnel
make
cp udp2raw /usr/local/bin
cd -
}

install_packages()
{
if grep -q Debian /etc/issue || grep -q Ubuntu /etc/issue ; then
apt purge -y dnsmasq
rm -rf /etc/dnsmasq.conf
rm -rf /etc/dnsmasq.d
apt install -y dnsmasq dnsutils resolvconf wget curl ipset sed
apt install -y gettext build-essential unzip gzip openssl libssl-dev \
autoconf automake libtool gcc g++ make zlib1g-dev \
libev-dev libc-ares-dev git

if ! wg > /dev/null ; then
echo "Install Wireguard"
echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 150\n' > /etc/apt/preferences.d/limit-unstable
apt update
apt install -y dkms linux-headers-`uname -r`
apt install -y wireguard
fi
fi

if [ -f /etc/centos-release ] ; then
curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
yum install -y epel-release
yum install -y wireguard-dkms wireguard-tools
yum install -y bind-utils
yum install -y unzip gzip openssl openssl-devel gcc libtool libevent \
autoconf automake make curl curl-devel zlib-devel cpio gettext-devel \
libev-devel c-ares-devel git
fi

if ! [ -e /usr/local/bin/gfwlist2dnsmasq.sh ]; then
wget https://raw.githubusercontent.com/cokebar/gfwlist2dnsmasq/master/gfwlist2dnsmasq.sh
chmod +x gfwlist2dnsmasq.sh
mv gfwlist2dnsmasq.sh /usr/local/bin/
fi

install_udp2raw
}


config_dnsmasq()
{
if (cat /etc/issue | grep -q 'Ubuntu' | grep -q '18.' ) ; then
if !(grep -q "DNSStubListener=no" /etc/systemd/resolved.conf) ; then
echo "disable systemd-resolved server"
sudo echo "DNSStubListener=no" >> /etc/systemd/resolved.conf
service systemd-resolved restart
fi
fi

grep -q "server=223.5.5.5" /etc/dnsmasq.conf || echo "server=223.5.5.5" >> /etc/dnsmasq.conf

ipset destroy $GFWLIST_IPSET
ipset create $GFWLIST_IPSET hash:ip family inet timeout $GFWLIST_TIMEOUT
/usr/local/bin/gfwlist2dnsmasq.sh -d 8.8.8.8 -p 53 -s $GFWLIST_IPSET -o /etc/dnsmasq.d/gfwlist.conf

echo "0 0 * * 0 cd /tmp && /usr/local/bin/gfwlist2dnsmasq.sh -d 8.8.8.8 -p 53 -s $GFWLIST_IPSET -o /etc/dnsmasq.d/gfwlist.conf && /etc/init.d/dnsmasq restart> /dev/null" > /tmp/crontab.root

crontab /tmp/crontab.root
service dnsmasq restart

}


main()
{
install_packages
config_dnsmasq
}

main
Loading