首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在由VNC-查看器远程控制的Ubuntu服务器上启动VPN?

如何在由VNC-查看器远程控制的Ubuntu服务器上启动VPN?
EN

Ask Ubuntu用户
提问于 2016-01-23 02:32:34
回答 1查看 1.7K关注 0票数 1

如何在由viewer远程控制的Ubuntu服务器(以改变服务器IP地址)上启动VPN?

我使用Expressvpn VPN和本指南:https://www.expressvpn.com/support/vpn-setup/linux-openvpn-terminal/在Ubuntu14.04.3LTS上设置VPN。当我试图连接到所需的位置(指南中的步骤5)时,我将从VNC-查看器中注销。我相信IP地址被更改了,但是现在我必须通过向VNC-查看器输入新的IP地址来重新连接到我的服务器。我不知道新生成的IP地址,因为每次启动VPN时,VPN的IP地址都是不同的。Expressvpn支持小组不知道如何解决这个问题。试图自己解决这个问题花了我几天的时间,没有解决的办法。如有任何帮助,我将不胜感激。

EN

回答 1

Ask Ubuntu用户

发布于 2017-03-25 00:35:57

我通过创建一个python脚本来检查Linux上的外部ip,并将它发送给我,如果不同的话,我就解决了这个问题。我使用cron每3分钟运行一次。确实很笨重,但效果很好。

代码语言:javascript
复制
#! /usr/bin/env python


# Check for internet connection

import urllib2
import time
import string

def internet_on():
    try:
        response=urllib2.urlopen('http://www.google.com/',timeout=1)
        return True
    except urllib2.URLError as err: pass
    return False

#loop_value = 1
#while (loop_value == 1):
#    try:
#   urllib2.urlopen("http://www.google.com")
#    except urllib2.URLError, e:
#   time.sleep( 10 )
#    else:
#   loop_value = 0

# Commands to be run if internet connection is present:
if internet_on():
    # Get external IP from canyouseeme.org by searching html page for an IP address
    import urllib
    import re 
    f = urllib.urlopen("http://myip.dnsdynamic.org/")
    html_doc = f.read()
    f.close()
    m = re.search('(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)',html_doc)
    # print html_doc
    #print m.group(0)
    current_ipaddress = m.group(0)

    # Look at last line of ip log file
    IPlog = open ('iplog.txt')
    lineList = IPlog.readlines()
    IPlog.close()
    # print (lineList)
    # print ("The last line is:")
    # print (lineList[len(lineList)-1])
    # or simply
    # print (lineList[-1])
    # print current_ipaddress

    # See if current IP has changed from last logged
    if current_ipaddress + "\n" <> lineList[-1]:
        #Append ip address to ip log file
        f = open('iplog.txt','a')
        localtime = time.asctime( time.localtime(time.time()) )
        f.write(localtime + "\n" + current_ipaddress + "\n")
        # python will convert \n to os.linesep
        f.close()

        # Mail new ip    
        import smtplib
        smtp_server = 'smtp.gmail.com'
        smtp_port = 587
        sender = '****@gmail.com'
        # recipients = ["*****2001@hotmail.com", "john@***.com"]
        recipients = ["*****@***.com"]


        subject = 'SERVER ALERT'
        body = 'Server IP address has changed to: ' + current_ipaddress
        password = '**********************'
        smstext = body 
        body = "" + body + ""

        headers = ["From: " + sender,
               "Subject: " + subject,
               #"To: " + "Fred and John",
               "To: " + "John",
               "MIME-Version: 1.0",
               "Content-Type: text/html"]
        headers = "\r\n".join(headers)

        session = smtplib.SMTP(smtp_server, smtp_port)

        session.ehlo()
        session.starttls()
        session.ehlo
        session.login(sender, password)

        session.sendmail(sender, recipients, headers + "\r\n\r\n" + body)
        session.quit()


        # Google Voice SMS send
        import pygvoicelib
        conn = pygvoicelib

        username="**************"
        apppass="****************************"
        auth_token="***********************************"
        client = conn.GoogleVoice(username,apppass,auth_token,rnr_se)
        #phone number below
        client.sms('1212*******',smstext)
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/724518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档