方法1 使用curl命令
curl 'http://10.3.8.211/login' --data 'user=*****&pass=*****'
这条命令不会返回任何输出,执行完直接 ctrl+c 结束就行
方法2 使用python脚本(request库)
import requests
import logging
logging.basicConfig(
format="%(levelname)-8s %(asctime)s (%(filename)-15s: line %(lineno)3d): %(message)s",
level=logging.INFO
)
Getway_IP = "http://10.3.8.211/login" # 校园网网关登录地址 或换成"http://gw.bupt.edu.cn/login"
LogOut_URL = "http://10.3.8.211/logout" # 校园网网关登出地址 或换成"http://gw.bupt.edu.cn/logout"
Check_URL = "http://www.baidu.com" # 用以检测是否可以连接到外网
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'}
username = "" # 请改成自己的学工号
password = "" # 请改成自己的校园网密码
def main():
if check_network():
logging.info("您已经登录过!")
return True # 已经登录
else:
login(username, password)
if check_network():
logging.info("登录成功!")
return True # 登录成功
else:
logging.error("登录失败,请检查账号密码!")
return False # 登录失败
def check_network():
# 必须禁止重定向,否则 status_code 一直是 200
res = requests.get(Check_URL, timeout=1, allow_redirects=False)
logging.debug(res.status_code)
logging.debug(res.text)
if res.status_code == 200:
logging.debug('您已经成功登录。')
return True
else:
logging.debug('未登录。')
return False
def login(username, password):
params = {
'user': username,
'pass': password
}
res = requests.post(Getway_IP, headers=headers, params=params)
logging.debug(res.text)
return(res)
def logout():
res = requests.get(LogOut_URL, headers=headers, allow_redirects=False)
logging.debug(res.text)
return(res)
main()
方法3 测试一下本地端口转发,在阿里云服务器上ssh连接校内内网服务器
内网服务器(命名为nw)能够访问外部,可以ping通阿里云服务器(命名为ali)的地址
但是外部阿里云的服务器无法ping通内网地址
name | ip |
---|---|
内网服务器nw | 55.5.240.214 |
外网服务器ali | 110.110.110.110 |
建立通道
在nw
里面执行
root@nw: ssh -NfR 1122:localhost:22 root@110.110.110.110 -p 22
- 先来解释一下参数,
后台执行(-f)
,不实际连接而是做port forwarding(-N)
,做反向ssh(-R)
- 意思是把
ali
上的 1122 端口映射成连接nw
与ali
的反向ssh的端口 - 如果报错,请先将
ali
的地址添加到nw
的~/.ssh/known_hosts
里面,另外需要将ali
的公钥.pub
文件添加到nw
的~/.ssh/authorized_keys
里面
登录内网服务器
在ali
里面执行
root@ali: ssh www@localhost -p1122
- www是指你登录内网服务器所用的用户名
- 同样这一步需要将
nw
的地址添加到ali
的~/.ssh/known_hosts
里面,另外需要将nw
的公钥.pub
文件添加到ali
的~/.ssh/authorized_keys
里面
如图为测试结果,成功登录