ubuntu config openvpn server

O  条件

1.一台Ubuntu服务器用来搭建OpenVPN服务

2.一台Windows用来安装OpenVPN客户端

O  搭建

1.安装 OpenVPN 和 Easy-RSA

第一步是安装 OpenVPN 和 Easy-RSA。 Easy-RSA 是一种公钥基础设施 (PKI) 管理工具,用于在OpenVPN 服务器上生成证书请求。然后在 CA 服务器上验证和签名。在这里我们的 OpenVPN 服务器和CA服务器为同一个 Ubuntu 服务器

首先,更新 OpenVPN 服务器的包索引并安装 OpenVPN 和 Easy-RSA。 这两个包都在 Ubuntu 的默认存储库中可用,可以使用 apt 进行安装:

  1. sudo apt update
  2. sudo apt install openvpn easy-rsa

 

openvpn安装完毕后,我们来查看openvpn的版本:

openvpn --version

安装完 easy-rsa 之后我们就可以开始创建 OpenVPN 服务所需要的秘钥了。

2.制作相关证书

OpenVPN 的证书分为三部分:CA证书、Server端证书、Client端证书。下面我们通过easy-rsa分别对其进行制作。

2.1制作CA证书

进入 /usr/share/easy-rsa 目录

首先将 vars.example 拷贝一份出来

然后编辑 vars 文件

修改下面部分的内容

在最后一行添加 KEY_NAME,可以是任何你喜欢的名字,但是请记住,后面制作服务端证书时会用到

对于不同版本的easy-rsa,使用方法可能不一样,具体可以参考安装文档的描述

cat /usr/share/doc/easy-rsa/README.Debian

然后使用以下命令:

sudo ./easyrsa init-pki

会发现多了个pki目录出来

然后再执行第二条命令

查看pki目录会发现有一个 ca.crt,这就是CA端证书,ca.crt 包含 CA 的公钥,用于验证服务器和客户端证书的有效性。客户端会使用此证书来验证服务器的身份。

至此CA端证书制作好了

2.2制作服务端证书

然后用以下命令制作Server端证书(注意改命令中的server要换成前面vars文件中设置的KEY_NAME):

sudo ./easyrsa build-server-full server nopass

修改pki目录权限并进入

查看服务器的证书和私钥:

  1. sudo ls issued
  2. sudo ls private

 

至此服务端的证书制作完毕

2.3制作客户端证书

Server端证书制作完成后,开始制作Client端证书,步骤和制作服务端证书类似,注意命令中的client,是客户端的名称,可以换成任意你喜欢的,不要和服务端证书一样就行

sudo ./easyrsa build-client-full client nopass

先制作一个用于给我windows电脑用的

再次查看 pki/issued/ 和 pki/private/ ,会发现多了windows11的证书和私钥出来

至此客户端的证书制作完毕

2.4创建迪菲·赫尔曼密钥

使用以下命令创建,会生成dh.pem文件

sudo ./easyrsa gen-dh

 

3.配置服务器端配置文件

3.1拷贝相关文件

首先复制一份服务器端配置文件模板 server.conf/etc/openvpn/

  1. sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
  2. cd /etc/openvpn/
  3. sudo gzip -d server.conf.gz

 

然后把刚刚创建好的CA证书、dh.pem、服务端证书/私钥、客户端证书/私钥复制过来,CA证书和dh.pem放在/etc/openvpn目录下,服务端证书/私钥放在server目录下,客户端证书/私钥放在client目录下。

3.2编辑server.conf

sudo vim server.conf

配置文件详细说明可以参考这篇:

OpenVPN server端配置文件详细说明-腾讯云开发者社区-腾讯云

我主要做了如下修改:

端口号依然使用1194,传输协议用tcp,注释掉原本的udp

修改证书和dh密钥路径

修改VPN的IP地址段,也可以不修改,我没做修改

打开下面选项,让VPN 重定向客户端所有流量

修改下面选项可以使客户端在连接OpenVPN时DNS服务器按照以下设置

开启后多个客户端可以同时使用一个证书和私钥

关闭TLS认证

启用 LZO 压缩算法,以减小通过OpenVPN通道传输的数据量,从而提高性能

在之前的日志内容后进行追加

关闭“服务器重启,客户端自动重新连接”

至此服务端配置文件修改完成。

4.运行OpenVPN Server

使用以下命令运行并查看OpenVPN Server

  1. sudo systemctl start openvpn@server
  2. sudo systemctl status openvpn@server

 

使用以下命令查看日志

sudo tail -f /var/log/openvpn/openvpn.log

5.设置防火墙

开启1194和SSH端口并重启ufw防火墙

  1. sudo ufw allow 1194
  2. sudo ufw allow OpenSSH
  3. sudo ufw disable
  4. sudo ufw enable

 

6.Windows客户端配置

下载openvpn客户端v2.4.8:OpenVPN v2.4.8

下载好以后点击运行,然后在右下角状态栏里找到OpenVPN的图标,右键点击,选中选项,在高级里面修改配置文件文件夹路径为 C:\Program Files\OpenVPN\config

然后先在Ubuntu服务器上用chown命令将ca.crt, windows11.crt, windows11.key 的所有者权限改成自己

sudo chown wt ca.crt client/windows11{.crt,.key}

由于我在本地电脑上没有安装ssh服务端,所以无法直接在Ubuntu服务器上使用scp将这三个文件传输到本地电脑,所以在本地电脑执行以下命令将这三个文件远程传输到C:\Program Files\OpenVPN\config,该目录为openvpn客户端的配置文件所在目录

scp -r wt@114.212.122.48:/etc/openvpn/{ca.crt,client/windows11{.crt,.key}} ./

然后在客户端机器上打开C:\Program Files\OpenVPN\config文件夹,新建一个windows11.ovpn文件,在里面添加如下内容

  1. client
  2. dev tun
  3. proto tcp
  4. remote 114.212.122.48 1194
  5. resolv-retry infinite
  6. nobind
  7. persist-key
  8. persist-tun
  9. ca ca.crt
  10. cert windows11.crt
  11. key windows11.key
  12. comp-lzo
  13. verb 3

 

保存后关闭

然后连接VPN,显示成功

ping OpenVPN服务器的IP,可以ping通

7.调整 OpenVPN 服务器网络配置

此时已经能够使用OpenVPN的基本功能,但是由于之前我们设置过让VPN重定向客户端的所有流量,导致无法正常访问外部网络

7.3配置路由转发和防火墙

7.3.1配置路由转发

要调整 OpenVPN 服务器的默认 转发设置,修改/etc/sysctl.conf 文件

sudo vim /etc/sysctl.conf,然后在末尾添加以下行

net.ipv4.ip_forward = 1

修改完后保存并关闭文件,然后输入以下命令为当前会话加载新值

sudo sysctl -p

7.3.2修改防火墙配置

先输入以下命令查看服务器的公网接口

ip route list default

公网接口是输出中dev后面的字符串,在我的机器里为 eno1

有了默认路由关联的接口后,我们打开 /etc/ufw/before.rules 文件添加相关配置:

 sudo vim /etc/ufw/before.rules
  1. #
  2. # rules.before
  3. #
  4. # Rules that should be run before the ufw command line added rules. Custom
  5. # rules should be added to one of these chains:
  6. # ufw-before-input
  7. # ufw-before-output
  8. # ufw-before-forward
  9. #
  10. # START OPENVPN RULES
  11. # NAT table rules
  12. *nat
  13. :POSTROUTING ACCEPT [0:0]
  14. # Allow traffic from OpenVPN client to eno1 (change to the interface you discovered!)
  15. -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j MASQUERADE
  16. COMMIT
  17. # END OPENVPN RULES
  18. # Don’t delete these required lines, otherwise there will be errors
  19. *filter
  20. . . .

 

然后需要告诉 UFW 默认情况下也允许转发数据包, 打开并修改 /etc/default/ufw 文件:

sudo vim /etc/default/ufw

找到 DEFAULT_FORWARD_POLICY 指令并将值从 DROP 更改为 ACCEPT

重启防火墙

然后重启服务器上的OpenVPN服务

  1. sudo ufw disable
  2. sudo ufw enable
  3. sudo systemctl restart openvpn@server

 

此时客户端重新连接VPN,会发现可以正常上网了

跳转DNS leak test测试,发现IP已经变成OpenVPN服务器的IP

python 使用multipart/x-mixed-replace模拟视频

思路:
1)设置http header Content-Type:multipart/x-mixed-replace; boundary=frame
2)capture camera as jpeg
3)每个jpeg包裹成一个http response片段发送
–frame\r\nContent-Type: image/jpeg\r\n\r\n xxxx(jpeg binary data)xxxx \r\n\r\n

4) HTML页面上写一个<img> src为这个python的action。本示例为/v2

from flask import Flask, Response
import cv2
import time

width = 2560
height = 1440

class VideoCamera(object):
    def __init__(self):
        cap = cv2.VideoCapture(0)
        cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)
        self.video = cap

    def __del__(self):
        self.video.release()

    def get_frame(self):
        return self.video.read()

app = Flask(__name__)


@app.route('/v2')
def stream():
    def generate():
        camera = VideoCamera()
        while True:
            ret, frame1 = camera.get_frame()
            ret, frameData = cv2.imencode('.jpg', frame1, [int(cv2.IMWRITE_JPEG_QUALITY), 60])
            yield (b'--frame\r\nContent-Type: image/jpeg\r\n\r\n')
            yield (frameData.tobytes())
            yield (b'\r\n\r\n')
            time.sleep(0.0333)
    return Response(generate(), mimetype='multipart/x-mixed-replace; boundary=frame')

if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True, port=4000)

 

其中这两句的ret, 必须有:
ret, frame1 = camera.get_frame()
ret, frameData = cv2.imencode(‘.jpg’, frame1, [int(cv2.IMWRITE_JPEG_QUALITY), 60])

virtualbox装macos

VirtualBox虚拟机安装Mac OS

在cmd中,一次一行执行:

vboxmanage modifyvm "macos"  --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
vboxmanage setextradata "macos"  "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "MacBookPro11,3"
vboxmanage setextradata "macos"  "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
vboxmanage setextradata "macos"  "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple"
vboxmanage setextradata "macos"  "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
vboxmanage setextradata "macos"  "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1
vboxmanage setextradata "macos" --cpu-profile "Intel Core i5-14400"

cpu 2
内存 16G
在VirtualBox里设为NAT网络,在Mac里设为DHCP
设置时区 北京

vs2022 .csproj using to copy extra files

<Target Name="TestTarget" Condition="'$(PlatformTarget)' == 'x64'" BeforeTargets="PrepareForBuild">
  <ItemGroup>
    <winF Include="../services/win-x64/**/*" />
    <macF Include="../services/mac-x64/**/*" />
  </ItemGroup>
  
  <Copy SourceFiles="@(winF)" SkipUnchangedFiles="true" DestinationFolder="$(OutputPath)/%(RecursiveDir)" Condition="$(TargetFramework.ToLower().Contains('window'))" />
  <Copy SourceFiles="@(macF)" SkipUnchangedFiles="true" DestinationFolder="$(OutputPath)/%(RecursiveDir)" Condition="$(TargetFramework.ToLower().Contains('mac')) OR $(TargetFramework.ToLower().Contains('ios'))" />
    
</Target>

 

引用参考
https://blog.walterlv.com/post/known-properties-in-csproj.html

How to use codeQL

  • download codeQL

https://github.com/github/codeql-cli-binaries/releases

  • add to path

path=%path%;${install_codeql_path}

  • download the code pack

codeql pack download codeql/javascript-queries

  • create database
codeql database create db1 --source-root=D:/js_project --language=javascript

 

  • analyze
codeql database analyze db1 codeql-repo/javascript --format=csv --output=result.csv

 

  • update dababase :在js_project更改代码后,需要用这个更新一下,然后再分析

codeql database upgrade databaseName

xcode download

https://developer.apple.com/cn/support/xcode/

Xcode 11.3.x — Mac OS 10.14.4+
https://download.developer.apple.com/Developer_Tools/Xcode_11.3.1/Xcode_11.3.1.xip
https://download.developer.apple.com/Developer_Tools/Command_Line_Tools_for_Xcode_11.3.1/Command_Line_Tools_for_Xcode_11.3.1.dmg

https://download.developer.apple.com/Developer_Tools/Xcode_11/Xcode_11.xip

https://download.developer.apple.com/Developer_Tools/Xcode_11.2_beta/Xcode_11.2_beta.xip

https://download.developer.apple.com/Developer_Tools/Xcode_11/Xcode_11.xip

Xcode 10.x

https://download.developer.apple.com/Developer_Tools/Xcode_10.3/Xcode_10.3.xip

https://download.developer.apple.com/Developer_Tools/Xcode_10.2.1/Xcode_10.2.1.xip

https://download.developer.apple.com/Developer_Tools/Xcode_10.2/Xcode_10.2.xip

https://download.developer.apple.com/Developer_Tools/Xcode_10.1/Xcode_10.1.xip

https://download.developer.apple.com/Developer_Tools/Xcode_10/Xcode_10.xip

预防贫血

预防贫血

1、注意营养。膳食要平衡、合理、蛋白质含量要丰富
多吃含铁较多的食物,如海带、紫菜、木耳、西红柿、动物肝脏、瘦肉、鱼、虾、蛋黄、豆类和大米等,常吃水果,均有食疗作用。提倡用铁锅炒菜
2、提倡和推广生产各种强化铁的食品,供儿童青少年食用
3、做好钩虫流行地区的大便检查与驱虫工作
4、饭后喝橘子水可使机体对非血色素铁吸收率增强,饭后吃水果也可促进铁的吸收,在进餐时和饭后食入含维生素C及有机酸的食物和饮料可促进铁的吸收

杭四下沙特长生专题

声乐 打击乐 小号 圆号 单簧管 双簧管 萨克斯 大管 长号 长笛 中音号 大号 小低音号 黑管
2016 5 1 2 中音+上低 2 2 1
2018 4 2 1 1 1 2 2
2019 4 1键盘打 1 1+1低音 1 1上低 1 (上低音号)1 1
2020 4 1 1 1 1 1上低 1 2
2021 4 2 1 1 降E+2降B 2
2022 4 1 1 1 1 1 1 1 2
2023 4 1键盘打 2 1 1 降E+2降B 1

学校信息

学科带头人
何建芳 语文
张云其 语文
林上双 数学
俞澜 数学?
徐雪婷 英语
张玉 音乐

边小妹 物理 副校长
陈海燕 语文
崔佳音 语文
丁茵 ?
廖彬 英语

何建芳
杭州市西溪中学校长、书记
中学语文高级教师

多次获得县(区)市先进教育工作者、优秀党员、党代表、名校长、优秀校长等荣誉称号;
是浙江省新课改工作先进个人、浙江省春蚕奖获得者,
浙江省首期“领雁工程”骨干校长班优秀学员、
第一期长三角名校长高级研究班学员、
浙派名校长班学员。

分配生办法

一、素质分

1) 来源
区市少科院小院士
区“十佳好少年”
区市“阳光少年”
“少先队雏鹰争章金奖或银奖”
最美西湖少年
美德少年

国家教育部
浙江省教育厅
杭州市教育局
西湖区教育局
本校行政公章的获奖证书

二、2023 分配生名额

分配学校及分配名额:

杭二中滨江校区5人
杭州学军西溪校区5人
杭高贡院校区4人
杭十四中凤起校区4人
杭四中下沙校区5人

杭州学军紫金港校区4人

浙大附中玉泉校区5人
长河高级中学3人
杭高钱江校区3人
杭师大附中4人
杭州学军海创园学校2人
杭二中钱江学校2人
杭十四中康桥校区3人
浙大附中丁兰校区3人

杭二中东河校区2人
杭四中吴山校区2人
杭州源清中学4人
杭四江东3人

杭州七中3人
杭高钱塘4人
十四中青山湖2人
绿城育华1人

http://www.hzxhjy.cn/xxzx/xwgk/zzld/202304/t20230429_689947.shtml