信息162大三上必修课期末考试时间安排
第十九周
课程 | 日期 | 时间 |
---|---|---|
微机原理 | 1月8号 | 13:30 - 15:10 |
计算机网络技术 | 1月9号 | 13:30 - 15:10 |
数字信号处理 | 1月10号 | 8:00 - 9:40 |
毛概 | 1月10号 | 10:20 - 12:00 |
通信原理 | 1月11号 | 15:50 - 17:30 |
第十九周
课程 | 日期 | 时间 |
---|---|---|
微机原理 | 1月8号 | 13:30 - 15:10 |
计算机网络技术 | 1月9号 | 13:30 - 15:10 |
数字信号处理 | 1月10号 | 8:00 - 9:40 |
毛概 | 1月10号 | 10:20 - 12:00 |
通信原理 | 1月11号 | 15:50 - 17:30 |
存在这样一种情况,经常在非服务器环境下开发python程序,即使在本地运行良好,但是在服务器的环境下就会存在问题,如何保证开发环境跟运行环境一致呢?
这里通过PyCharm
的远程解释器
加上自动文件同步功能,实现
的方式来调试程序。
局域网下的服务器IP地址为: 192.168.2.192
,python版本3.6,
且在项目下已有虚拟环境,开启ssh服务。
首先我们需要配置PyCharm通服务器的代码同步,打开Tools | Deployment | Configuration
点击左边的“+”添加一个部署配置,输入名字,类型选SFTP
确定之后,再配置远程服务器的ip、端口、用户名和密码。root path是文件上传的根目录,注意这个目录必须用户名有权限创建文件。
然后配置映射,local path是你的工程目录,就是需要将本地这个目录同步到服务器上面,我填的是项目根目录。 Deploy path on server 这里填写相对于root path的目录,下面那个web path不用管先
还有一个设置,打开Tools | Deployment | Options,将”Create Empty directories”打上勾,要是指定的文件夹不存在,会自动创建。
有几种方法可以实现本地和远程文件的同步,手动和当文件保存后自动触发。这里我选中Automatic upload
。
手动上传方式很简单,选择需要同步的文件或文件夹,然后选择 Tools | Deployment | Upload to sftp(这个是刚刚配置的部署名称)
如果在服务器存在已有项目,选择Compare with … ,然后全部接受服务器端的文件。
有时候你并不确定远程和本地版本的完全一致,需要去比较看看。PyCharm提供了对比视图来为你解决这个问题。
选择Tools | Deployment | Browse Remote Host,打开远程文件视图,在右侧窗口就能看到远程主机中的文件
选择一个你想要对比的文件夹,点击右键->Sync with Local,打开同步对比窗口,使用左右箭头来同步内容。
新建一个python解释器,选择SSH 解释器,由于我上面配置过就直接选模板,
这里请仔细看我的Python解释器是虚拟环境virtualenv,这个要在服务器上面先创建好虚拟环境。
指定启动Host
为0.0.0.0
,表示允许所有ip进行调试
若需要启动web浏览器,指定下地址为服务器端的ip
我们的隐私政策,说明了您通过我们的小程序应用访问和使用“BTBU查询”(下称小程序)过程中信息是如何收集,使用的。就目前而言,我们只使用了最简单的第三方授权登录方式,没有利用任何方式去主动获取您的隐私,我们在后续的过程中如非必要不会在windows程序、App上去请求那些不必要的权限去窥探您的隐私。
当您使用小程序的过程中,我们会在您自愿选择服务或提供信息的情况下收集您的私人信息,以便向您提供更好的用户服务。 “私人信息”包括您提供给我们的北京工商大学教务处账号、密码等。小程序不会主动收集或请求用户提供这些信息。
我们可能通过以下方式使用信息:
我们将对信息严格保密,不会与他人分享这些信息,亦不会将其出售、出租或以其他方式分发给他人。
小程序的用户总是可以选择是否披露信息。有些信息是登记我们的服务所必需的,但大多数其他信息的提供是由用户决定的。小程序将视用户舒适度及自主选择为首位。小程序可能为用户提供网络互动活动,为便于用户参予互动活动并获取互动奖品,小程序通常要求申请者在联系方法(通讯地址和电话)之外,还要根据其个人兴趣填写表格。此类信息被小程序用来累积用户数据。如果用户不想提供所要求的信息和参加此类活动,这完全由用户自行决定。
小程序建议:任何未成年人参加网上活动应事先取得家长或其法定监护人(以下简称”监护人”)的书面同意。小程序将根据国家相关法律法规的规定保护未成年人的相关信息。
通过使用Cookies
,小程序向用户提供简单易行并富个性化的网络体验。一个Cookies
是少量的数据,它们从一个网络服务器送至您的浏览器并存在计算机硬盘上。小程序使用Cookies
是为了让其用户受益。Cookies
可用于储存用户偏好设置、改善用户体验以及跟踪用户趋势(例如用户使用小程序的方式),从而帮助我们提高服务质量。Cookies
能帮助我们确定您连接的页面和内容,您在小程序特定网页上花费的时间和您所选择的小程序的服务。
Cookies
是放置在小程序的计算机或服务器上的身份证。它只能被设置它们的服务器阅读,而且不能执行任何代码或病毒。Cookies
使得小程序能更好、更快地为您服务,并且帮助您对小程序进行一些个性化的设置。然而,您应该能够控制Cookies
是否以及怎样被您的浏览器接受。请查阅您的浏览器附带的文件以获得更多这方面的信息。
简而言之,小程序将Cookies 当作一种便捷的体验,其作用是使得用户在从小程序的一项服务转到另一项服务时,无须再证明自己的身份。您可以通过修改浏览器设置的方式拒绝Cookies,如果您选择拒绝Cookies,则您可能无法登录或使用依赖于Cookies 的小程序服务或功能。
小程序承诺在现有技术许可的范围内采取合理必要的预防措施保护用户的数据安全,但是所有的互联网服务商都无法保证数据百分百安全,因此小程序也无法做出绝对的保证。我们会在合理商业运作的基础上,采取尽可能完备的措施保护您存放在小程序中的数据。 您的个人信息和数据受到多重保护,包括人员的、电子的和程序上的。
如果小程序得知安全系统漏洞,我们可能联络您提供给我们的电子邮件地址或在我们的网站上发布通知,以试图告知您并提供关于保护措施(如适用)的信息。
我们仅在本《隐私政策》所述目的所必需的期间和法律法规要求的时限内保留您的个人信息。
我们使用各种安全技术和程序,以防信息的丢失、不当使用、未经授权阅览或披露。例如,在某些服务中,我们将利用加密技术(例如SSL
)来保护您提供的个人信息。但请您理解,由于技术的限制以及可能存在的各种恶意手段,在互联网行业,即便竭尽所能加强安全措施,也不可能始终保证信息百分之百的安全。您需要了解,您接入我们的服务所用的系统和通讯网络,有可能因我们可控范围外的因素而出现问题。
小程序鼓励用户更新和修改其个人信息以使其有效。用户能在任何时候非常容易地获取并修改其个人信息。用户可以自行决定修改、删除他们的相关资料。请记住,无论何时您自愿披露个人信息(如在网络上公布), 此种信息可能被他人收集及使用,因此造成您的个人信息泄露,小程序不承担责任,如果您将个人信息公布在上述渠道,您就有可能造成个人信息泄露。因此,我们提醒并请您慎重考虑是否有必要在上述渠道公开您的个人信息。
最后,您是唯一对您的账号和密码信息负有保密责任的人。任何情况下,请小心妥善保管。
由于本隐私政策可能不时被更新,您应定期查看以了解我们保护所收集之个人信息的方案及程序。您继续使用小程序服务即构成您对本隐私政策及其任何更新版本的同意。有关本声明或小程序的隐私措施的问题请与我们联系。
最近在开发一款微信小程序,实现学校教务管理的信息(成绩、课表等)的抓取与发布。 教务系统服务器处于校内网的环境,在外网下,有且仅有通过vpn账号和学校内部服务器通信。
要实现小程序查询功能,有以下两种方式
vpn
账号与学校联通;一般来说,vpn
账号关乎个人隐私,与网络费用挂钩。此次小程序的开发,我希望遵循“简化
、安全
”的宗旨,希望借助ngrok
内网穿透服务,来代理网络的https请求,转发到内网的服务器上。
网络服务器的环境为ubuntu 18.04 x64,借助apt包直接安装
1 | sudo apt install build-essential golang openssl |
1 | go version |
当前最新的ngrok版本为2.x,但是最新的2.x版本不开源,仅提供1.x可用。且ngrok分服务端和用户端两部分,一般来说,云端服务器做服务端,内网服务端做用户端,且编译依赖于SSL证书,相当于仅仅能一对一使用。
1 | git clone https://github.com/inconshreveable/ngrok.git |
request
要求必须是经过https加密传输,并且安全SSL证书认证的。当前https认证第三方组织的少有免费的。1 | NGROK_DOMAIN="btbuquery.top" #注意域名换成你自己的 |
来自由DigiCert Inc
公司提供了一年时长的免费SSL认证,因为在编译依赖SSL证书
从阿里云下载到认证的证书
共四个文件,将第二个后缀重命名为xxxxxxxxxxx.crt
,传到ngrok的目录下
复制到assets/server/tls/
文件夹下
1 | cp *.crt assets/server/tls/snakeoil.crt |
1 | # 编译64位linux平台服务端 |
1 | GOOS=linux GOARCH=arm make release-server |
按照平台需求,设置不同参数,与编译服务端一致。
1 | make release-client |
执行后会在ngrok/bin目录及其子目录下看到服务端ngrokd和客户端ngrok二进制可执行文件
1 | cd bin/ |
httpAddr
:设置代理的http端口,默认80;
httpsAddr
:设置代理的https端口,默认443;
tunnelAddr
:设置ngrok通信端口,默认4443。
将云服务器上的ngrok/bin/ngrok
文件传输到在内网服务器上,以在ngrok文件下为例:
ngrok.cfg
文件,写入以下内容1 | server_addr: btbuquery.top:4443 |
trust_host_root_certs
为false
1 | ./ngrok -log=ngrok.log -config=ngrok.cfg start http ssh |
相当于实现 http://www.btbuquery.top
转发到内网
127.0.0.1:8000
https://www.btbuquery.top
转发到内网 127.0.0.1:8000
tcp://btbuquery.top:222
转发到内网
120.0.0.1:222
start.sh
脚本,写入以下内容1 | /root/project/ngrok/bin/ngrokd -domain="btbuquery.top" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443" |
/etc/init.d
新建ngrok文件,写入以下内容1 | #!/bin/sh |
1 | cd /etc/init.d/ |