I want to reach Jenkins from both behind the router and the internet.
Pretty straightforward setup:
Internet > Router > Mac > Jenkins
Known items:
From the router, I can see the machine's internal IP, which I'll call "X.X.X.X".
Then there's the Jenkins URL location configuration in Jenkins:
Goals
I want to be able to access the Jenkins site from any machine
already behind the router. I thought that I could use the X.X.X.X IP
address as the above Jenkins URL but this didn't work.
Second, I want to be able to reach the Jenkins site from outside the
router. Then I can configure Jenkins anywhere as well as use
web-hooks when there are changes.
I assume I then need to know the IP address of the router but that's about all I know.
How can I accomplish this?
Here's how to connect to a Jenkins instance on Mac OS X from outside your router, although it's probably very similar on another OS like Windows or Linux.
Give your Jenkins machine a static IP address in Settings. We'll refer to it as jenkins_machine_static_ip for the purposes of these instructions:
Go to Settings > Network > Advanced... > TCP/IP
Copy the IPv4 Address (it'll be your jenkins_machine_static_ip), and also copy the Subnet Mask, & Router
Select Configure IPv4 > Manually
Fill in copied info and select 'OK'
In your router's admin panel, assign the same jenkins_machine_static_ip to the Mac Address of your Jenkins machine.
Access to the router admin panel depends on your router.
You can find your Mac Address on your Jenkins machine as follows:
Go to Settings > Network > Advanced... > Hardware
Configure the Jenkins URL as http://jenkins_machine_static_ip:pick_a_port, where jenkins_machine_static_ip is the same one from steps 1&2 and pick_a_port is any unused port.
The Jenkins URL can be configured in your Jenkins web portal by following this path:
Jenkins > Manage Jenkins > Configure System > Jenkins Location
See the image in the original question.
Set up port forwarding on your router by picking an arbitrary router port (we'll call it router_forwarded_port) and forwarding it to http://machine_static_ip:pick_a_port, which you set up in #3.
You can now access your Jenkins instance from outside the network by accessing your router's IP and the forwarding port. You can get your router's external IP address here: Router_IP
The address you need to connect to is: Router_IP:router_forwarded_port/
Related
I am using Jenkins on MacOS (Monterey) and I want to be able to access my Jenkins from any (outside) network using my ip address.
I have updated the --httpListenAddress to 0.0.0.0 and restarted Jenkins.
I have checked for port 8080 to be open to inbound traffic.
I have been able to access this Jenkins from devices on the same network but not from an outside network.
I was able to achieve everything I wanted when using an AWS EC2 instance (by adding security group rules) but not able to do the same for a local Jenkins on my machine.
Any help/advice would be great! (Maybe without using a 3rd party service?)
Thank you.
I'm trying to setup Jenkins on my MacMini server. I've installed it using official docs and everything works, except accessing Jenkins using local network ip. I
'm able to enter using localhost:8080, but not able to reach it from 192.168.1.X:8080 from other network device or even from the same mac server.
I've already tried instructions from this question
Accessing Jenkins on Mac OS X from another machine
but no effect.
It looks like Jenkins does not open to external connections or something. My browser finds Jenkins address, but it says "Not able to connect", just like if there is no such port (8080).
I've created a test http server, just to see if my Mac is reachable and ports are open, and everything works fine. Im able to enter an http, ssh, VNC using network address, but not able to enter Jenkins using it's port.
Does anybody knows why?
I’m an absolute beginner when it comes to setting up a Jenkins environment but I have just installed Jenkins on a MAC v10.15.5 using home-brew and would like the capability to:
Open a web browser
Login to Jenkins from any machine on any network
Trigger a job.
I’m able to do this using a different machine on the same network but unable to do this using a machine on a different network. I changed the "httpListenAddress" value within the jenkins-lts.plist file to 0.0.0.0 to allow the web interface to be accessible from anywhere as mentioned at https://www.macminivault.com/installing-jenkins-on-macos/ but apart from that I’m not sure where to go from here.
I’ve heard about Apache Tomcat but not sure if it's necessary for what I need to do. If anyone can provide instructions / safe approaches about how to login to the Jenkins environment on my MAC from any network that would be appreciated.
To get jenkins web interface use $JENKINS_HOST_IP:8080 (by default jenkins uses port 8080) and then make first-run-configure.
Login to Jenkins from any machine on any network - it depends on network topology, what is used in your organisation. So, to reach jenkins host from any network where should be allowed traffic from/into network where jenkins host is placed.
Trigger a job - where are a lot of triggers you can use. Take a look at official documentation here
I have a windows server 2016 machine which I have Jenkins running on. I wanted to install SonarQube. So have downloaded v7.1
I have managed to start sonarqube on the machine and can view the webserver at http://localhost:9000
I tried to view the page on a different machine using the IP address and port 9000, but this doesn't connect. Looking in the sonar.properties file I can see
Binding IP address. For servers with more than one IP address, this property specifies which
address will be used for listening on the specified ports.
By default, ports will be used on all IP addresses associated with the server. sonar.web.host=http://xx.xxx.xxxx.xxx
If I use http:// then sonarqube starts, but I can't see sonarqube from any other machine, if I don't use http:// (so just the ip) then it won't start with a bind error.
Has anyone experience of setting this up on windows?
Turns out it was something a lot simpler, the machine is being run on azure and there was no port 9000 endpoint
I developed a client/server simulation application. I deployed client and server on two different Windows XP machines. Somehow, the client is not able to send requests to the server.
I tried below options:
Pinged server machine successfully from client using ip-address.
Pinged client machine successfully from server using ip-address.
Checked netstat command line tool from both machines. Server is in LISTENING mode and client is in SYS_SENT mode. But the foreign address it is using to send is host name not the ip address.
Pinged server machine unsuccessfully using host name from client.
Pinged client machine successfully using host name from server.
I feel the problem is when the client is trying to connect to the server using the host name.
Could you please let me know how to force an application to use an ip address instead of a host name? Is there any other way to map the host name to an ip address?
Go to your client machine and type in:
nslookup server.company.com
substituting the real host name of your server for server.company.com, of course.
That should tell you which DNS server your client is using (if any) and what it thinks the problem is with the name.
To force an application to use an IP address, generally you just configure it to use the IP address instead of a host name. If the host name is hard-coded, or the application insists on using a host name in preference to an IP address (as one of your other comments seems to indicate), then you're probably out of luck there.
However, you can change the way that most machine resolve the host names, such as with /etc/resolv.conf and /etc/hosts on UNIXy systems and a local hosts file on Windows-y systems.
Try tracert to resolve the hostname. IE you have Ip address 8.8.8.8 so you would use; tracert 8.8.8.8
You could use a C function getaddrinfo() to get the numerical address - both ipv4 and ipv6.
See the example code here
This is hard to answer without more detail about the network architecture. Some things to investigate are:
Is it possible that client and/or server is behind a NAT device, a firewall, or similar?
Is any of the IP addresses involved a "local" address, like 192.168.x.y or 10.x.y.z?
What are the host names, are they "real" DNS:able names or something more local and/or Windows-specific?
How does the client look up the server? There must be a place in code or config data that holds the host name, simply try using the IP there instead if you want to avoid the lookup.
Windows XP has the Windows Firewall which can interfere with network traffic if not configured properly. You can turn off the Windows Firewall, if you have administrator privileges, by accessing the Windows Firewall applet through the Control Panel. If your application works with the Windows Firewall turned off then the problem is probably due to the settings of the firewall.
We have an application which runs on multiple PCs communicating using UDP/IP and we have been doing experiments so that the application can run on a PC with a user who does not have administrator privileges. In order for our application to communicate between multiple PCs we have had to use an administrator account to modify the Windows Firewall settings.
In our application, one PC is designated as the server and the others are clients in a server/client group and there may be several groups on the same subnet.
The first change was to use the functionality of the Exceptions tab of the Windows Firewall applet to create an exception for the port that we use for communication.
We are using host name lookup so that the clients can locate their assigned server by using the computer name which is composed of a mnemonic prefix with a dash followed by an assigned terminal number (for instance SERVER100-1). This allows several servers with their assigned clients to coexist on the same subnet. The client uses its prefix to generate the computer name for the assigned server and to then use host name lookup to discover the IP address of the assigned server.
What we found is that the host name lookup using the computer name (assigned through the Computer Name tab of the System Properties dialog) would not work unless the server PC's Windows Firewall had the File and Printer Sharing Service port enabled.
So we had to make two changes: (1) setup an exception for the port we used for communication and (2) enable File and Printer Service in the Exceptions tab to allow for the host name lookup.
** EDIT **
You may also find this Microsoft Knowledge Base article on helpful on Windows XP networking.
And see this article on NETBIOS name resolution in Windows.