设为首页 收藏本站
查看: 604|回复: 0

[经验分享] coTurn 运行在Windows平台的方法及服务与客户端运行交互流程和原理

[复制链接]

尚未签到

发表于 2017-12-8 08:04:07 | 显示全部楼层 |阅读模式
  coTurn是一个开源的STUN和TURN及ICE服务项目,只是不支持Windows。
为了在window平台上使用coTurn源码,需要在windows平台下安装Cygwin环境,并编译coTurn源码,使其可以运行在windows平台上。
  步骤:
  1、安装Cygwin,地址:https://cygwin.com/install.html,按照其说明进行安装。参照说明地址:https://cygwin.com/cygwin-ug-net/cygwin-ug-net.html
  安装过程中选择的镜像源地址,为了更加快速,使用http://mirrors.163.com/cygwin/
  2、下载coTurn源码。目前Release最新版本的地址为:https://codeload.github.com/coturn/coturn/zip/4.5.0.4
  3、编译:
  XII. MS Windows and Cygwin support
  Currently, this project cannot be compiled under MS Windows.
  As the project is using fairly straightforward *NIX API, it is supported
under Cygwin environment in MS Windows.
  One note for Cygwin users: we recommended libevent2 installation from the cygwin
"ports" site: http://sourceware.org/cygwinports/ . You will have to install
libevent2 runtime and libevent-devel packages. "Manual" libevent2 compilation
and installation in Cygwin is not recommended and does not garantee a good
outcome.
  编译过程简单记录:
  ①生成Makefile文件



CC=gcc ./configure

DSC0000.gif DSC0001.gif


Dev@Dev-PC /bin/coturn-4.5.0.4
$ CC=gcc ./configure
install 是 /usr/bin/install
pkill 是 /usr/bin/pkill
sqlite3 是 /usr/bin/sqlite3
Use TMP dir /var/tmp
Compiler: gcc
Library option -lsocket cannot be used
CYGWIN ?
Library option -lwldap64 cannot be used
Library option -lnsl cannot be used
Sockets code is fine: no sin_len field present
Ignore IP_RECVERR
Crypto SSL lib found.
SSL lib found.
Libevent2 development found.
Libevent2 runtime found.
Libevent2 runtime 'extra' found.
Libevent2 openssl found.
Libevent2 pthreads found.
SQLite library found.
SQLite development found.
PostgreSQL found.
MySQL found.

MONGODB DEVELOPMENT LIBRARIES (libmongoc-1.0 and libbson-1.0) AND/OR HEADER (mongoc.h)
         ARE NOT INSTALLED PROPERLY ON THIS SYSTEM.
         THAT'S OK BUT THE TURN SERVER IS BUILDING WITHOUT MONGODB SUPPORT.

HIREDIS DEVELOPMENT LIBRARY (libhiredis.*) AND/OR HEADERS (hiredis/*.h)
         ARE NOT INSTALLED PROPERLY ON THIS SYSTEM.
         THAT'S OK BUT THE TURN SERVER IS BUILDING WITHOUT REDIS SUPPORT.

PREFIX=/usr/local LOCALSTATEDIR=/usr/local/var OSLIBS= -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/lib/postgresql -Wl,-rpath,/usr/lib/mysql -Wl,-rpath,/usr/local/lib DBLIBS= -lsqlite3  -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -L/usr/lib/postgresql -lpq  -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -L/usr/lib/mysql -lmysqlclient OSCFLAGS=-g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb DBCFLAGS= -I/usr/local/pgsql/include -I/usr/local/include/pgsql/ -I/usr/local/include/postgres/ -I/usr/local/postgres/include/ -I/usr/local/include/postgresql/ -I/usr/local/postgresql/include/ -I/usr/local/pgsql/include -I/usr/local/include/pgsql/ -I/usr/local/include/postgres/ -I/usr/local/postgres/include/ -I/usr/local/include/postgresql/ -I/usr/local/postgresql/include/ -I/usr/pgsql/include -I/usr/include/pgsql/ -I/usr/include/postgres/ -I/usr/postgres/include/ -I/usr/include/postgresql/ -I/usr/postgresql/include/ -I/usr/local/mysql/include -I/usr/local/include/mysql/ -I/usr/local/mysql/include -I/usr/local/include/mysql/ -I/usr/mysql/include -I/usr/include/mysql/
Makefile created: success.
View Code  ②编译make





Dev@Dev-PC /bin/coturn-4.5.0.4
$ make
mkdir -p build/obj
gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  -c src/client/ns_turn_ioaddr.c -o build/obj/ns_turn_ioaddr.o
mkdir -p build/obj
gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  -c src/client/ns_turn_msg_addr.c -o build/obj/ns_turn_msg_addr.o
mkdir -p build/obj
gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  -c src/client/ns_turn_msg.c -o build/obj/ns_turn_msg.o
mkdir -p lib
ar -r lib/libturnclient.a build/obj/ns_turn_ioaddr.o build/obj/ns_turn_msg_addr.o build/obj/ns_turn_msg.o
ar: 正在创建 lib/libturnclient.a
pwd
/bin/coturn-4.5.0.4
mkdir -p bin
gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  src/apps/stunclient/stunclient.c src/apps/common/apputils.c src/apps/common/ns_turn_utils.c src/apps/common/stun_buffer.c -o bin/turnutils_stunclient -Llib -lturnclient -Llib -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/lib/postgresql -Wl,-rpath,/usr/lib/mysql -Wl,-rpath,/usr/local/lib
pwd
/bin/coturn-4.5.0.4
mkdir -p bin
gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  src/apps/rfc5769/rfc5769check.c src/apps/common/apputils.c src/apps/common/ns_turn_utils.c src/apps/common/stun_buffer.c -o bin/turnutils_rfc5769check -Llib -lturnclient -Llib -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/lib/postgresql -Wl,-rpath,/usr/lib/mysql -Wl,-rpath,/usr/local/lib
mkdir -p bin
gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  src/apps/uclient/uclient.c src/apps/uclient/startuclient.c src/apps/uclient/mainuclient.c src/apps/common/apputils.c src/apps/common/ns_turn_utils.c src/apps/common/stun_buffer.c -o bin/turnutils_uclient -Llib -lturnclient -Llib -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/lib/postgresql -Wl,-rpath,/usr/lib/mysql -Wl,-rpath,/usr/local/lib
mkdir -p bin
rm -rf bin/turnadmin
gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  -I/usr/local/pgsql/include -I/usr/local/include/pgsql/ -I/usr/local/include/postgres/ -I/usr/local/postgres/include/ -I/usr/local/include/postgresql/ -I/usr/local/postgresql/include/ -I/usr/local/pgsql/include -I/usr/local/include/pgsql/ -I/usr/local/include/postgres/ -I/usr/local/postgres/include/ -I/usr/local/include/postgresql/ -I/usr/local/postgresql/include/ -I/usr/pgsql/include -I/usr/include/pgsql/ -I/usr/include/postgres/ -I/usr/postgres/include/ -I/usr/include/postgresql/ -I/usr/postgresql/include/ -I/usr/local/mysql/include -I/usr/local/include/mysql/ -I/usr/local/mysql/include -I/usr/local/include/mysql/ -I/usr/mysql/include -I/usr/include/mysql/    -DTURN_NO_MONGO -DTURN_NO_HIREDIS src/apps/relay/ns_ioalib_engine_impl.c src/apps/relay/turn_ports.c src/apps/relay/http_server.c -Ilib src/apps/relay/mainrelay.c src/apps/relay/netengine.c src/apps/relay/libtelnet.c src/apps/relay/turn_admin_server.c src/apps/relay/userdb.c src/apps/relay/tls_listener.c src/apps/relay/dtls_listener.c src/apps/common/hiredis_libevent2.c src/apps/relay/dbdrivers/dbdriver.c src/apps/relay/dbdrivers/dbd_sqlite.c src/apps/relay/dbdrivers/dbd_pgsql.c src/apps/relay/dbdrivers/dbd_mysql.c src/apps/relay/dbdrivers/dbd_mongo.c src/apps/relay/dbdrivers/dbd_redis.c src/apps/common/apputils.c src/apps/common/ns_turn_utils.c src/apps/common/stun_buffer.c src/client/ns_turn_ioaddr.c src/client/ns_turn_msg_addr.c src/client/ns_turn_msg.c  src/server/ns_turn_allocation.c src/server/ns_turn_maps_rtcp.c src/server/ns_turn_maps.c src/server/ns_turn_server.c -o bin/turnserver -lsqlite3  -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -L/usr/lib/postgresql -lpq  -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -L/usr/lib/mysql -lmysqlclient -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/lib/postgresql -Wl,-rpath,/usr/lib/mysql -Wl,-rpath,/usr/local/lib
cd bin; ln -s turnserver turnadmin
mkdir -p bin
gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  src/apps/peer/mainudpserver.c src/apps/peer/udpserver.c src/apps/common/apputils.c src/apps/common/ns_turn_utils.c src/apps/common/stun_buffer.c -o bin/turnutils_peer -Llib -lturnclient -Llib -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/lib/postgresql -Wl,-rpath,/usr/lib/mysql -Wl,-rpath,/usr/local/lib
rm -rf include
mkdir -p include/turn/client
cp -pf src/client/*.h include/turn/client/
cp -pf src/client++/*.h include/turn/client/
cp -pf src/ns_turn_defs.h include/turn/
install -d sqlite
rm -rf sqlite/turndb
sqlite3 sqlite/turndb < turndb/schema.sql
View Code  ③make install





Dev@Dev-PC /bin/coturn-4.5.0.4
$ make install
install -d /usr/local
install -d /usr/local/bin
install -d /usr/local/var/db
install -d /usr/local/man/man1
install -d /usr/local/etc
install -d /usr/local/lib
install -d /usr/local/share/examples/turnserver
install -d /usr/local/share/doc/turnserver
install -d /usr/local/share/turnserver
install -d /usr/local/include/turn
install bin/turnserver /usr/local/bin
install bin/turnadmin /usr/local/bin
install bin/turnutils_uclient /usr/local/bin
install bin/turnutils_peer /usr/local/bin
install bin/turnutils_stunclient /usr/local/bin
install man/man1/turnserver.1 /usr/local/man/man1/
install man/man1/turnadmin.1 /usr/local/man/man1/
install man/man1/turnutils.1 /usr/local/man/man1/
install man/man1/turnutils_uclient.1 /usr/local/man/man1/
install man/man1/turnutils_stunclient.1 /usr/local/man/man1/
install man/man1/turnutils_peer.1 /usr/local/man/man1/
install man/man1/coturn.1 /usr/local/man/man1/
install lib/libturnclient.a /usr/local/lib
install LICENSE /usr/local/share/doc/turnserver
install README.turnserver /usr/local/share/doc/turnserver
install README.turnadmin /usr/local/share/doc/turnserver
install README.turnutils /usr/local/share/doc/turnserver
install INSTALL /usr/local/share/doc/turnserver
install postinstall.txt /usr/local/share/doc/turnserver
install turndb/schema.sql /usr/local/share/doc/turnserver
install turndb/schema.sql /usr/local/share/turnserver
install turndb/schema.mongo.sh /usr/local/share/doc/turnserver
install turndb/schema.mongo.sh /usr/local/share/turnserver
install turndb/testredisdbsetup.sh /usr/local/share/turnserver
install turndb/testmongosetup.sh /usr/local/share/turnserver
install turndb/testsqldbsetup.sql /usr/local/share/turnserver
install turndb/schema.userdb.redis /usr/local/share/doc/turnserver
install turndb/schema.userdb.redis /usr/local/share/turnserver
install turndb/schema.stats.redis /usr/local/share/doc/turnserver
install turndb/schema.stats.redis /usr/local/share/turnserver
if [ -f sqlite/turndb ] ; then install sqlite/turndb /usr/local/var/db/turndb; fi
install examples/etc/turnserver.conf /usr/local/etc/turnserver.conf.default
cp -rpf examples/etc /usr/local/share/examples/turnserver
cp -rpf examples/scripts /usr/local/share/examples/turnserver
rm -rf /usr/local/share/examples/turnserver/scripts/rfc5769.sh
cp -rpf include/turn/client /usr/local/include/turn
install include/turn/ns_turn_defs.h /usr/local/include/turn
cat /usr/local/share/doc/turnserver/postinstall.txt
==================================================================
1) If you system supports automatic start-up system daemon services,
the, to enable the turnserver as an automatically started system
service, you have to:

         a) Create and edit /etc/turnserver.conf or
         /usr/local/etc/turnserver.conf .
         Use /usr/local/etc/turnserver.conf.default as an example.

         b) For user accounts settings: set up SQLite or PostgreSQL or
         MySQL or MongoDB or Redis database for user accounts.
         Use /usr/local/share/turnserver/schema.sql as SQL database schema,
         or use /usr/local/share/turnserver/schema.userdb.redis as Redis
         database schema description and/or
         /usr/local/share/turnserver/schema.stats.redis
         as Redis status & statistics database schema description.

         If you are using SQLite, the default database location is in
         /var/db/turndb or in /usr/local/var/db/turndb or in /var/lib/turn/turndb.

         c) add whatever is necessary to enable start-up daemon for the
         /usr/local/bin/turnserver.

2) If you do not want the turnserver to be a system service,
    then you can start/stop it "manually", using the "turnserver"
    executable with appropriate options (see the documentation).

3) To create database schema, use schema in file
/usr/local/share/turnserver/schema.sql.

4) For additional information, run:

    $ man turnserver
    $ man turnadmin
    $ man turnutils

==================================================================
View Code  下载tar.gz包的编译方法:



$ tar vfzx coturn-4.5.0.4.tar.gz
$ cd coturn-4.5.0.4/
$ ./configure

Dev@Dev-PC /home/coturn-4.5.0.4
$ make
$ make install
  4、配置
  在bin目录下生成六个可执行文件
  turnadmin  turnutils_peer.exe  turnutils_stunclient.exe  turnserver.exe  turnutils_rfc5769check.exe  turnutils_uclient.exe
  turnserver.exe 就是我们需要的服务器.
  turnadmin 用来管理账户.
  turnutils_stunclient.exe 用于测试stun服务
  turnutils_uclient.exe 用于测试turn服务. 模拟多个UDP,TCP,TLS or DTLS 类型的客户端
  example 目录主要是示范如何配置和使用turn. 包含一些测试用例.
  example/etc 下是pem证书和conf配置文件
  example/var/db 下是sqlite的db库. 用于示范数据库的格式.
  coturn 支持三种配置. 命令行, conf文件和数据库.
  数据库支持sqlite, mysql, postgresql, MongoDB, redis.目前测试的Cygwin环境下编译的coTurn不支持MongoDB和redis,因为暂时用不到,所以也就没有查找如何才能编译支持到上述数据库
  更具体的说明可以看源码目录下的README.turnserver README.turnadmin README.turnutils
  examples\scripts 下一些测试用例:
  loadbalance 示范如何进行负载均衡.  设置一个master turn server 然后配置若干个slave turn server.
  longtermsecure 示范如何使用long-term 验证
  longtermsecuredb 与 longtermsecure 类似, 不过是从数据库配置
  shorttermsecure 示范如何使用short-term验证.
  restapi 示范了web方面的使用.
  stun 定义了两种验证方式.

Long-Term Credential
Short-Term Credential


  具体可以参考stun标准 http://tools.ietf.org/html/rfc5389#section-15.4
  若用于WebRTC,必须使用long-term
  简单配置:
  turnserver -o -a -f -v --mobility -m 10 --max-bps=100000 --min-port=32355 --max-port=65535 --user=ling:ling1234 --user=ling2:ling1234 -r demo
  -m 10 表示启动十个relay线程.


当TURN Server用于WebRTC时,必须使用long-term credential mechanism,  即指定 -a 或者 --lt-cred-mech  --max-bps=100000 限制最大速度为100KB/s.
  添加了两个用户ling 和ling2.
  可以直接使用turnutils_uclient -u ling -w ling1234 来测试. turnutils_uclient 有很多参数可以配置的.









webrtc::PeerConnectionInterface::IceServer turnServer;

turnServer.uri = "turn:ip";

turnServer.username = "ling";

turnServer.password = "ling1234";

servers.push_back(turnServer);
  c++ webrtc中可以这样配置turn. web/android/ios 也是类似的.
  如果从安全性方面考虑. 可以为账户生成key, 这样就可以直接通过key登录. 而不需要提供密码.
  key 通过turnadmin生成, 需要(username, password, realm) . realm是启动turn server时-r 参数指定的.
  例如这样:









turnadmin -k -u ling -p ling1234 -r demo

0xccba8f3a6a025a38eb4a0e795fc92705
  参考原文:
  https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html#windows
  https://www.slideshare.net/amiteshawa/web-rtc-media-stra
  其它:
  http://www.cppblog.com/tianhongye/archive/2015/01/15/209524.html
  http://www.cnblogs.com/lingdhox/p/4209659.html
  http://www.ietf.org/proceedings/87/slides/slides-87-behave-10.pdf
TURN REST Server API ,这个PDF 描述了 turn服务器和客户端的交互流程.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-422007-1-1.html 上篇帖子: web cache server方案比较:varnish、squid、nginx 下篇帖子: windows后门
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表