Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
tbblgm119
lede
提交
6ab6f0c6
L
lede
项目概览
tbblgm119
/
lede
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
lede
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6ab6f0c6
编写于
10月 22, 2019
作者:
L
LEAN-ESX
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
https://github.com/coolsnowwolf/lede
上级
6d0aa62f
27143861
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
162 addition
and
175 deletion
+162
-175
package/network/services/wireguard/Makefile
package/network/services/wireguard/Makefile
+2
-2
package/network/services/wireguard/files/wireguard.sh
package/network/services/wireguard/files/wireguard.sh
+160
-173
未找到文件。
package/network/services/wireguard/Makefile
浏览文件 @
6ab6f0c6
...
...
@@ -11,12 +11,12 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME
:=
wireguard
PKG_VERSION
:=
0.0.201
81218
PKG_VERSION
:=
0.0.201
91012
PKG_RELEASE
:=
1
PKG_SOURCE
:=
WireGuard-
$(PKG_VERSION)
.tar.xz
PKG_SOURCE_URL
:=
https://git.zx2c4.com/WireGuard/snapshot/
PKG_HASH
:=
2e9f86acefa49dbfb7fa6f5e10d543f1885a2d5460cd5e102696901107675735
PKG_HASH
:=
93573193c9c1c22fde31eb1729ad428ca39da77a603a3d81561a9816ccecfa8e
PKG_LICENSE
:=
GPL-2.0 Apache-2.0
PKG_LICENSE_FILES
:=
COPYING
...
...
package/network/services/wireguard/files/wireguard.sh
浏览文件 @
6ab6f0c6
...
...
@@ -2,197 +2,184 @@
# Copyright 2016-2017 Dan Luedtke <mail@danrl.com>
# Licensed to the public under the Apache License 2.0.
WG
=
/usr/bin/wg
if
[
!
-x
$WG
]
;
then
logger
-t
"wireguard"
"error: missing wireguard-tools (
${
WG
}
)"
exit
0
logger
-t
"wireguard"
"error: missing wireguard-tools (
${
WG
}
)"
exit
0
fi
[
-n
"
$INCLUDE_ONLY
"
]
||
{
.
/lib/functions.sh
.
../netifd-proto.sh
init_proto
"
$@
"
.
/lib/functions.sh
.
../netifd-proto.sh
init_proto
"
$@
"
}
proto_wireguard_init_config
()
{
proto_config_add_string
"private_key"
proto_config_add_int
"listen_port"
proto_config_add_int
"mtu"
proto_config_add_string
"fwmark"
available
=
1
no_proto_task
=
1
proto_config_add_string
"private_key"
proto_config_add_int
"listen_port"
proto_config_add_int
"mtu"
proto_config_add_string
"fwmark"
available
=
1
no_proto_task
=
1
}
proto_wireguard_setup_peer
()
{
local
peer_config
=
"
$1
"
local
public_key
local
preshared_key
local
allowed_ips
local
route_allowed_ips
local
endpoint_host
local
endpoint_port
local
persistent_keepalive
config_get public_key
"
${
peer_config
}
"
"public_key"
config_get preshared_key
"
${
peer_config
}
"
"preshared_key"
config_get allowed_ips
"
${
peer_config
}
"
"allowed_ips"
config_get_bool route_allowed_ips
"
${
peer_config
}
"
"route_allowed_ips"
0
config_get endpoint_host
"
${
peer_config
}
"
"endpoint_host"
config_get endpoint_port
"
${
peer_config
}
"
"endpoint_port"
config_get persistent_keepalive
"
${
peer_config
}
"
"persistent_keepalive"
# peer configuration
echo
"[Peer]"
>>
"
${
wg_cfg
}
"
echo
"PublicKey=
${
public_key
}
"
>>
"
${
wg_cfg
}
"
if
[
"
${
preshared_key
}
"
]
;
then
echo
"PresharedKey=
${
preshared_key
}
"
>>
"
${
wg_cfg
}
"
fi
for
allowed_ip
in
$allowed_ips
;
do
echo
"AllowedIPs=
${
allowed_ip
}
"
>>
"
${
wg_cfg
}
"
done
if
[
"
${
endpoint_host
}
"
]
;
then
case
"
${
endpoint_host
}
"
in
*
:
*
)
endpoint
=
"[
${
endpoint_host
}
]"
;;
*
)
endpoint
=
"
${
endpoint_host
}
"
;;
esac
if
[
"
${
endpoint_port
}
"
]
;
then
endpoint
=
"
${
endpoint
}
:
${
endpoint_port
}
"
else
endpoint
=
"
${
endpoint
}
:51820"
fi
echo
"Endpoint=
${
endpoint
}
"
>>
"
${
wg_cfg
}
"
fi
if
[
"
${
persistent_keepalive
}
"
]
;
then
echo
"PersistentKeepalive=
${
persistent_keepalive
}
"
>>
"
${
wg_cfg
}
"
fi
# add routes for allowed ips
if
[
${
route_allowed_ips
}
-ne
0
]
;
then
for
allowed_ip
in
${
allowed_ips
}
;
do
case
"
${
allowed_ip
}
"
in
*
:
*
/
*
)
proto_add_ipv6_route
"
${
allowed_ip
%%/*
}
"
"
${
allowed_ip
##*/
}
"
;;
*
.
*
/
*
)
proto_add_ipv4_route
"
${
allowed_ip
%%/*
}
"
"
${
allowed_ip
##*/
}
"
;;
*
:
*
)
proto_add_ipv6_route
"
${
allowed_ip
%%/*
}
"
"128"
;;
*
.
*
)
proto_add_ipv4_route
"
${
allowed_ip
%%/*
}
"
"32"
;;
esac
done
fi
local
peer_config
=
"
$1
"
local
public_key
local
preshared_key
local
allowed_ips
local
route_allowed_ips
local
endpoint_host
local
endpoint_port
local
persistent_keepalive
config_get public_key
"
${
peer_config
}
"
"public_key"
config_get preshared_key
"
${
peer_config
}
"
"preshared_key"
config_get allowed_ips
"
${
peer_config
}
"
"allowed_ips"
config_get_bool route_allowed_ips
"
${
peer_config
}
"
"route_allowed_ips"
0
config_get endpoint_host
"
${
peer_config
}
"
"endpoint_host"
config_get endpoint_port
"
${
peer_config
}
"
"endpoint_port"
config_get persistent_keepalive
"
${
peer_config
}
"
"persistent_keepalive"
echo
"[Peer]"
>>
"
${
wg_cfg
}
"
echo
"PublicKey=
${
public_key
}
"
>>
"
${
wg_cfg
}
"
if
[
"
${
preshared_key
}
"
]
;
then
echo
"PresharedKey=
${
preshared_key
}
"
>>
"
${
wg_cfg
}
"
fi
for
allowed_ip
in
$allowed_ips
;
do
echo
"AllowedIPs=
${
allowed_ip
}
"
>>
"
${
wg_cfg
}
"
done
if
[
"
${
endpoint_host
}
"
]
;
then
case
"
${
endpoint_host
}
"
in
*
:
*
)
endpoint
=
"[
${
endpoint_host
}
]"
;;
*
)
endpoint
=
"
${
endpoint_host
}
"
;;
esac
if
[
"
${
endpoint_port
}
"
]
;
then
endpoint
=
"
${
endpoint
}
:
${
endpoint_port
}
"
else
endpoint
=
"
${
endpoint
}
:51820"
fi
echo
"Endpoint=
${
endpoint
}
"
>>
"
${
wg_cfg
}
"
fi
if
[
"
${
persistent_keepalive
}
"
]
;
then
echo
"PersistentKeepalive=
${
persistent_keepalive
}
"
>>
"
${
wg_cfg
}
"
fi
if
[
${
route_allowed_ips
}
-ne
0
]
;
then
for
allowed_ip
in
${
allowed_ips
}
;
do
case
"
${
allowed_ip
}
"
in
*
:
*
/
*
)
proto_add_ipv6_route
"
${
allowed_ip
%%/*
}
"
"
${
allowed_ip
##*/
}
"
;;
*
.
*
/
*
)
proto_add_ipv4_route
"
${
allowed_ip
%%/*
}
"
"
${
allowed_ip
##*/
}
"
;;
*
:
*
)
proto_add_ipv6_route
"
${
allowed_ip
%%/*
}
"
"128"
;;
*
.
*
)
proto_add_ipv4_route
"
${
allowed_ip
%%/*
}
"
"32"
;;
esac
done
fi
}
proto_wireguard_setup
()
{
local
config
=
"
$1
"
local
wg_dir
=
"/tmp/wireguard"
local
wg_cfg
=
"
${
wg_dir
}
/
${
config
}
"
local
private_key
local
listen_port
local
mtu
# load configuration
config_load network
config_get private_key
"
${
config
}
"
"private_key"
config_get listen_port
"
${
config
}
"
"listen_port"
config_get addresses
"
${
config
}
"
"addresses"
config_get mtu
"
${
config
}
"
"mtu"
config_get fwmark
"
${
config
}
"
"fwmark"
config_get ip6prefix
"
${
config
}
"
"ip6prefix"
# create interface
ip
link
del dev
"
${
config
}
"
2>/dev/null
ip
link
add dev
"
${
config
}
"
type
wireguard
if
[
"
${
mtu
}
"
]
;
then
ip
link set
mtu
"
${
mtu
}
"
dev
"
${
config
}
"
fi
proto_init_update
"
${
config
}
"
1
# generate configuration file
umask
077
mkdir
-p
"
${
wg_dir
}
"
echo
"[Interface]"
>
"
${
wg_cfg
}
"
echo
"PrivateKey=
${
private_key
}
"
>>
"
${
wg_cfg
}
"
if
[
"
${
listen_port
}
"
]
;
then
echo
"ListenPort=
${
listen_port
}
"
>>
"
${
wg_cfg
}
"
fi
if
[
"
${
fwmark
}
"
]
;
then
echo
"FwMark=
${
fwmark
}
"
>>
"
${
wg_cfg
}
"
fi
config_foreach proto_wireguard_setup_peer
"wireguard_
${
config
}
"
# apply configuration file
${
WG
}
setconf
${
config
}
"
${
wg_cfg
}
"
WG_RETURN
=
$?
# delete configuration file
rm
-f
"
${
wg_cfg
}
"
# check status
if
[
${
WG_RETURN
}
-ne
0
]
;
then
sleep
5
proto_setup_failed
"
${
config
}
"
exit
1
fi
# add ip addresses
for
address
in
${
addresses
}
;
do
case
"
${
address
}
"
in
*
:
*
/
*
)
proto_add_ipv6_address
"
${
address
%%/*
}
"
"
${
address
##*/
}
"
;;
*
.
*
/
*
)
proto_add_ipv4_address
"
${
address
%%/*
}
"
"
${
address
##*/
}
"
;;
*
:
*
)
proto_add_ipv6_address
"
${
address
%%/*
}
"
"128"
;;
*
.
*
)
proto_add_ipv4_address
"
${
address
%%/*
}
"
"32"
;;
esac
done
# support ip6 prefixes
for
prefix
in
${
ip6prefix
}
;
do
proto_add_ipv6_prefix
"
$prefix
"
done
# endpoint dependency
wg show
"
${
config
}
"
endpoints |
\
sed
-E
's/\[?([0-9.:a-f]+)\]?:([0-9]+)/\1 \2/'
|
\
while
IFS
=
$'
\t
'
read
-r
key address port
;
do
[
-n
"
${
port
}
"
]
||
continue
proto_add_host_dependency
"
${
config
}
"
"
${
address
}
"
done
proto_send_update
"
${
config
}
"
local
config
=
"
$1
"
local
wg_dir
=
"/tmp/wireguard"
local
wg_cfg
=
"
${
wg_dir
}
/
${
config
}
"
local
private_key
local
listen_port
local
mtu
config_load network
config_get private_key
"
${
config
}
"
"private_key"
config_get listen_port
"
${
config
}
"
"listen_port"
config_get addresses
"
${
config
}
"
"addresses"
config_get mtu
"
${
config
}
"
"mtu"
config_get fwmark
"
${
config
}
"
"fwmark"
config_get ip6prefix
"
${
config
}
"
"ip6prefix"
config_get nohostroute
"
${
config
}
"
"nohostroute"
ip
link
del dev
"
${
config
}
"
2>/dev/null
ip
link
add dev
"
${
config
}
"
type
wireguard
if
[
"
${
mtu
}
"
]
;
then
ip
link set
mtu
"
${
mtu
}
"
dev
"
${
config
}
"
fi
proto_init_update
"
${
config
}
"
1
umask
077
mkdir
-p
"
${
wg_dir
}
"
echo
"[Interface]"
>
"
${
wg_cfg
}
"
echo
"PrivateKey=
${
private_key
}
"
>>
"
${
wg_cfg
}
"
if
[
"
${
listen_port
}
"
]
;
then
echo
"ListenPort=
${
listen_port
}
"
>>
"
${
wg_cfg
}
"
fi
if
[
"
${
fwmark
}
"
]
;
then
echo
"FwMark=
${
fwmark
}
"
>>
"
${
wg_cfg
}
"
fi
config_foreach proto_wireguard_setup_peer
"wireguard_
${
config
}
"
# apply configuration file
${
WG
}
setconf
${
config
}
"
${
wg_cfg
}
"
WG_RETURN
=
$?
rm
-f
"
${
wg_cfg
}
"
if
[
${
WG_RETURN
}
-ne
0
]
;
then
sleep
5
proto_setup_failed
"
${
config
}
"
exit
1
fi
for
address
in
${
addresses
}
;
do
case
"
${
address
}
"
in
*
:
*
/
*
)
proto_add_ipv6_address
"
${
address
%%/*
}
"
"
${
address
##*/
}
"
;;
*
.
*
/
*
)
proto_add_ipv4_address
"
${
address
%%/*
}
"
"
${
address
##*/
}
"
;;
*
:
*
)
proto_add_ipv6_address
"
${
address
%%/*
}
"
"128"
;;
*
.
*
)
proto_add_ipv4_address
"
${
address
%%/*
}
"
"32"
;;
esac
done
for
prefix
in
${
ip6prefix
}
;
do
proto_add_ipv6_prefix
"
$prefix
"
done
# endpoint dependency
if
[
"
${
nohostroute
}
"
!=
"1"
]
;
then
wg show
"
${
config
}
"
endpoints |
\
sed
-E
's/\[?([0-9.:a-f]+)\]?:([0-9]+)/\1 \2/'
|
\
while
IFS
=
$'
\t
'
read
-r
key address port
;
do
[
-n
"
${
port
}
"
]
||
continue
proto_add_host_dependency
"
${
config
}
"
"
${
address
}
"
done
fi
proto_send_update
"
${
config
}
"
}
proto_wireguard_teardown
()
{
local
config
=
"
$1
"
ip
link
del dev
"
${
config
}
"
>
/dev/null 2>&1
local
config
=
"
$1
"
ip
link
del dev
"
${
config
}
"
>
/dev/null 2>&1
}
[
-n
"
$INCLUDE_ONLY
"
]
||
{
add_protocol wireguard
add_protocol wireguard
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录